Rumah Kewangan Peribadi C ++ Pemrograman: 10 Tips Anti-Hacker - dummies

C ++ Pemrograman: 10 Tips Anti-Hacker - dummies

Isi kandungan:

Video: How to find malicious software on your computer 2024

Video: How to find malicious software on your computer 2024
Anonim

Sebagai pengaturcara C ++, anda perlu mempelajari perkara yang perlu anda lakukan dalam kod C ++ anda untuk mengelakkan menulis program yang terdedah kepada penggodam. Terdapat juga ciri-ciri yang boleh anda sediakan jika sistem pengendalian anda menyokongnya, seperti Rawak Layout Rawak Ruang (ASLR) dan Pencegahan Pelaksanaan Data (DEP).

Jangan membuat andaian tentang input pengguna

Penglihatan terowong Programmer baik-baik saja semasa fasa pembangunan awal. Pada satu ketika, bagaimanapun, programmer (atau, lebih baik lagi, beberapa pengaturcara lain yang tidak ada kaitan dengan perkembangan kod) perlu duduk dan melupakan masalah segera. Dia perlu bertanya kepada diri sendiri, "Bagaimana program ini akan bertindak balas terhadap input haram? "

Berikut adalah beberapa kaedah untuk memeriksa input:

  • Jangan membuat andaian mengenai panjang input.

  • Jangan terima lebih banyak input daripada anda mempunyai ruang dalam penampan panjang tetap (atau buffer pembolehubah bersaiz yang digunakan).

  • Semak julat setiap nilai berangka untuk memastikan ia masuk akal.

  • Semak dan penapis aksara khas yang boleh digunakan oleh penggodam untuk menyuntik kod.

  • Jangan lulus input mentah ke perkhidmatan lain, seperti pelayan pangkalan data.

Dan lakukan semua pemeriksaan yang sama pada nilai yang dikembalikan dari perkhidmatan terpencil. Penggodam tidak boleh berada di sisi input, dia mungkin berada di sisi tindak balas.

Kegagalan Menangani Anggun

Program anda harus bertindak balas dengan munasabah terhadap kegagalan yang berlaku dalam program ini. Sebagai contoh, jika panggilan anda ke fungsi perpustakaan mengembalikan nullptr, program itu harus mengesan ini dan melakukan sesuatu yang munasabah.

Masuk akal di sini difahami secara adil. Program ini tidak perlu mengendus untuk mengetahui dengan tepat mengapa fungsi tersebut tidak memulangkan alamat yang munasabah. Ia mungkin permintaan itu terlalu banyak kerana memori tidak masuk akal. Atau mungkin pembina mengesan beberapa jenis input haram.

Tidak penting. Intinya ialah program itu harus memulihkan keadaannya dengan sebaik-baiknya dan menetapkan untuk input yang akan datang tanpa merosakkan atau merosakkan struktur data sedia ada seperti timbunan.

Mengekalkan Log Program

Buat dan jaga log runtime yang membolehkan seseorang membina semula apa yang berlaku sekiranya berlaku kegagalan keselamatan. (Sebenarnya, ini sama seperti berlaku sekiranya berlaku sebarang kegagalan.) Contohnya, anda mungkin mahu log setiap kali seseorang masuk ke dalam atau keluar dari sistem anda.

Anda pasti akan tahu siapa yang telah log masuk ke sistem anda apabila peristiwa keselamatan berlaku - ini adalah kumpulan yang paling berisiko kehilangan keselamatan dan yang paling mencurigakan ketika mencari penyebabnya.Di samping itu, anda perlu log masuk sebarang kesalahan sistem yang termasuk kebanyakan pengecualian.

Program pengeluaran dunia nyata mengandungi sebilangan besar panggilan yang kelihatan seperti berikut:

log (DEBUG, "Pengguna% s memasukkan kata laluan sah", sUser);

Ini hanyalah satu contoh. Setiap program memerlukan beberapa jenis fungsi log. Sama ada atau tidak ia sebenarnya dipanggil log () tidak penting.

Mengikuti proses pembangunan yang baik

Setiap program harus mengikuti proses pembangunan formal yang dipikirkan dengan baik. Proses ini harus mencakup sekurang-kurangnya langkah-langkah berikut:

  • Mengumpulkan dan keperluan dokumen, termasuk keperluan keamanan. Reka bentuk ulasan.

  • Mematuhi piawaian pengekodan.

  • Uji ujian bawah.

  • Menjalankan ujian penerimaan rasmi yang berdasarkan kepada keperluan asal.

  • Selain itu, ulasan rakan seperjuangan harus dijalankan di tempat utama untuk mengesahkan bahawa keperluan, reka bentuk, kod dan prosedur ujian adalah berkualiti tinggi dan memenuhi piawaian syarikat.

Melaksanakan kawalan versi yang baik

Kawalan versi adalah sesuatu yang pelik. Ia adalah semulajadi untuk tidak bimbang tentang versi 1. 1 apabila anda berada di bawah pistol untuk mendapatkan versi 1. 0 keluar pintu dan ke tangan yang terulur 'dibayangi. Walau bagaimanapun, kawalan versi adalah topik penting yang mesti ditangani lebih awal kerana ia mesti dibina dalam reka bentuk awal program dan tidak digantung kemudian.

Satu aspek yang hampir remeh daripada kawalan versi ialah mengetahui versi program yang pengguna gunakan. Apabila pengguna memanggil dan berkata, "Ia melakukan ini apabila saya mengklik pada itu," meja bantuan itu benar-benar perlu mengetahui versi program yang pengguna gunakan. Dia boleh menggambarkan masalah dalam versi yang telah ditetapkan dalam versi semasa.

Otentikasi pengguna dengan selamat

Pengesahan pengguna haruslah mudah: Pengguna menyediakan nama akaun dan kata laluan, dan program anda melihat nama akaun di atas meja dan membandingkan kata laluan. Sekiranya kata laluan sepadan, pengguna disahkan. Tetapi ketika datang ke antihacking, tidak ada yang mudah.

Pertama, jangan simpan kata laluan itu sendiri dalam pangkalan data. Ini dipanggil menyimpan mereka

dalam jelas dan dianggap bentuk yang sangat buruk. Ia terlalu mudah untuk penggodam untuk mendapatkan tangannya pada fail kata laluan. Sebaliknya, selamatkan kata laluan yang selamat. Menguruskan sesi jauh

Anda boleh membuat andaian tertentu apabila semua aplikasi anda berjalan pada satu komputer. Untuk satu perkara, sebaik sahaja pengguna telah mengesahkan dirinya sendiri, anda tidak perlu bimbang tentang dirinya yang berubah menjadi orang yang berbeza. Aplikasi yang berkomunikasi dengan pelayan jauh tidak boleh membuat andaian ini - penggodam yang sedang mendengar di baris boleh menunggu sehingga pengguna mengesahkan dirinya dan kemudian merampas sesi tersebut.

Apa yang boleh dilakukan pemrogram keselamatan untuk mengelakkan situasi ini? Anda tidak mahu berulang kali meminta pengguna untuk kata laluannya untuk memastikan sambungan tidak dirampas. Penyelesaian alternatif adalah untuk menubuhkan dan mengurus sesi

. Anda melakukan ini dengan mempunyai pelayan menghantar aplikasi jarak jauh cookie sesi apabila pengguna telah berjaya mengesahkan dirinya sendiri. Obfuscate your code

Code obfuscation

adalah perbuatan membuat executable sebagai sukar bagi seorang peretas untuk memahami yang mungkin. Logiknya mudah. Semakin mudah bagi penggodam memahami bagaimana kod anda berfungsi, semakin mudah bagi penggodam untuk mengetahui kerentanan.

Langkah paling mudah yang boleh anda lakukan ialah memastikan anda hanya mengedarkan versi Rilis program anda yang tidak termasuk maklumat simbol debug. Apabila anda mula-mula membuat fail projek, pastikan untuk memilih kedua-dua versi Debug dan Rilis harus dibuat.

Jangan sekali-kali, mengedarkan versi aplikasi anda dengan maklumat simbol yang disertakan.

Tandatangani kod anda dengan sijil digital

Kerja menandatangani kod dengan menjana hash selamat kod boleh laku dan menggabungkannya dengan sijil yang dikeluarkan oleh pihak berkuasa sijil yang sah. Proses ini berfungsi seperti berikut: Syarikat yang membuat program ini mesti mendaftar dengan salah satu pihak berkuasa sijil terlebih dahulu.

Setelah pihak berkuasa sijil yakin bahawa Syarikat saya adalah entiti perisian yang sah, ia mengeluarkan sijil. Ini adalah nombor panjang yang boleh digunakan sesiapa sahaja untuk mengesahkan bahawa pemegang sijil ini adalah Syarikat Saya yang terkenal di San Antonio.

Gunakan penyulitan selamat di mana perlu

Seperti apa-apa amaran yang baik, peringatan ini mempunyai beberapa bahagian. Pertama, "Gunakan penyulitan sekiranya perlu. "Ini cenderung untuk memikirkan fikiran tentang menyampaikan maklumat akaun bank melalui Internet, tetapi anda harus berfikir lebih umum daripada itu.

Data yang dikomunikasikan, sama ada melalui Internet atau lebih banyak rangkaian yang lebih kecil, dikenali secara umum sebagai

Data dalam Motion. Data dalam Motion harus disulitkan melainkan ia tidak berguna kepada penggodam. Data yang disimpan pada cakera dikenali sebagai

Data pada Rest. Data ini juga perlu disulitkan jika terdapat peluang cakera yang hilang, dicuri, atau disalin. Perniagaan secara rutin menyulitkan cakera keras pada komputer riba syarikat mereka sekiranya komputer riba dicuri di pengimbas keselamatan di lapangan terbang atau ditinggalkan teksi di suatu tempat. Alat penyimpanan mudah alih kecil seperti pemacu ibu jari amat mudah hilang - data pada peranti ini perlu disulitkan.

C ++ Pemrograman: 10 Tips Anti-Hacker - dummies

Pilihan Editor

QuickBooks 2016: Senarai Kod Cukai Jualan, Senarai Kelas dan Senarai Nama Lain -

QuickBooks 2016: Senarai Kod Cukai Jualan, Senarai Kelas dan Senarai Nama Lain -

QuickBooks 2016 menawarkan banyak senarai. Anda mungkin ingin melihat senarai Kod Cukai Jualan, senarai Kelas, dan senarai Nama Lain. Jika anda perlu melihat senarai ini, cuma pilih senarai dari menu Senarai atau pilih Daftar → Senarai Profil Pelanggan & Vendor dan pilih senarai dari submenu yang ...

Perubahan Tarikh cepat - dummies

Perubahan Tarikh cepat - dummies

Ingin memasukkan atau menukar tarikh dalam entri QuickBooks? Memasuki dan mengedit tarikh dalam QuickBooks adalah pantas dan mudah apabila anda menggunakan pintasan keyboard QuickBooks yang sangat berguna ini. QuickBooks Key atau Keystroke Combination Shortcut Results + Next day - Hari Sebelumnya T Hari W Hari Pertama Minggu K Hari terakhir ...

QuickBooks Mematuhi Pesanan Pembelian - dummies

QuickBooks Mematuhi Pesanan Pembelian - dummies

Anda boleh membuat PO QuickBooks walaupun anda memesan barang melalui telefon atau melalui World Wide Web - iaitu, apabila anda tidak meminta barangan secara bertulis. Mengisi pesanan pembelian membolehkan anda menentukan item yang ada pada pesanan dan apabila item tersebut akan tiba. Apa yang anda perlu lakukan ialah bertanya ...

Pilihan Editor

Buat Label dengan Grafik di Word 2016 - dummies

Buat Label dengan Grafik di Word 2016 - dummies

Kata membolehkan anda mencetak helaian label yang serupa, tetapi ia mengandungi hanya teks membosankan. Cuba rempah-rempah dengan menambah warna, fancy, dan pemformatan. Cara terbaik untuk memasak label ialah menambah gambar atau grafik lain. Ikuti langkah berikut: Klik tab Mailings. Dalam kumpulan Buat, klik ...

Cara Mencipta Blok Bangunan AutoTeks dalam Kata 2016 - dummies

Cara Mencipta Blok Bangunan AutoTeks dalam Kata 2016 - dummies

Kata 2016 tidak mempunyai fungsi AutoComplete . Ia telah dikeluarkan beberapa versi yang lalu. Di tempatnya, anda membuat blok bangunan AutoText, yang berfungsi seperti AutoComplete lama. Blok bangunan AutoText ialah pembantu menaip. Anda membuat blok bangunan untuk teks yang sering anda taip, seperti nama, alamat, permintaan maaf, dan sebagainya. ...

Membuat Kad Ucapan di Microsoft Word 2003 - dummies

Membuat Kad Ucapan di Microsoft Word 2003 - dummies

Jika anda ingin membuat sesuatu dalam Word yang hanya akan mempesonakan seseorang, cuba tangan anda pada kad ucapan tersuai. Untuk menyiapkan Word untuk membuat kad ucapan dari satu lembaran kertas bersaiz standard, ikuti langkah-langkah berikut: 1. Pilih Fail -> Persediaan Halaman. 2. Klik tab Margin. 3. Pilih Landskap ...

Pilihan Editor

Cara Menyediakan Pengawal Cari untuk Geocoding dalam App iOS Anda

Cara Menyediakan Pengawal Cari untuk Geocoding dalam App iOS Anda

Anda sudah mempunyai satu teka-teki geocoding di tempat di papan cerita anda untuk apl iOS anda; ini Pengawal Cari yang sesuai bernama. Caranya ialah untuk menambah pengawal peribadi yang akan melaksanakan ciri Cari yang anda mahu. Untuk menambah projek anda, ikuti langkah-langkah berikut: Dalam Navigator Projek, pilih ...

Cara Menyediakan Pengawal Peta di Main_iPad. Storyboard dalam Apl IOS anda - dummies

Cara Menyediakan Pengawal Peta di Main_iPad. Storyboard dalam Apl IOS anda - dummies

Sekali anda mempunyai pengawal paparan peribadi untuk MapController dalam aplikasi iOS anda, anda perlu memberitahu papan cerita iPad untuk memuat pengawal pandangan adat anda dan bukannya UIViewController. Ikuti langkah berikut: Dalam Navigator Projek, pilih Main_iPad. papan cerita dan kemudian pilih Lihat Pengawal di Lihat Pengawal - Adegan Peta dalam Garis Besar Dokumen. ...