1. Masukan Pemeriksaan
Selalu memeriksa input pengguna untuk memastikan bahwa itu adalah apa yang Anda harapkan. Pastikan tidak mengandung karakter atau data lain yang dapat diperlakukan dengan cara khusus oleh program atau program yang disebut oleh program.This Anda sering melibatkan memeriksa karakter seperti tanda kutip, dan memeriksa input karakter yang tidak biasa seperti non- alfanumerik karakter mana string teks diharapkan. Seringkali, ini adalah tanda serangan dari beberapa jenis yang dicoba.
2.Range Memeriksa
Selalu periksa rentang saat menyalin data, mengalokasikan memori atau melakukan operasi apapun yang berpotensi bisa meluap. Beberapa bahasa pemrograman menyediakan berbagai kotak-kotak kontainer akses (seperti std :: vector :: di () di C + +, tapi banyak programmer bersikeras menggunakan indeks array dicentang [] notasi. Selain itu, penggunaan fungsi seperti strcpy ( ) harus dihindari dalam preferensi untuk strncpy (), yang memungkinkan Anda untuk menentukan jumlah maksimum karakter untuk menyalin versi Similar fungsi seperti snprintf (.) sebagai lawan sprintf () dan fgets () bukan mendapat () menyediakan setara panjang-of-buffer spesifikasi Penggunaan fungsi seperti seluruh kode Anda harus mencegah buffer overflows Bahkan jika karakter string anda berasal dalam program ini,. dan Anda pikir Anda dapat pergi dengan strcpy () karena Anda mengetahui panjang string,. itu tidak berarti untuk mengatakan bahwa Anda, atau orang lain, tidak akan mengubah hal-hal di masa depan dan memungkinkan string yang akan ditentukan dalam file konfigurasi, pada baris perintah, atau dari masukan pengguna langsung. Masuk ke kebiasaan jangkauan pengecekan segala sesuatu harus mencegah sejumlah besar kerentanan keamanan dalam perangkat lunak Anda.
3.Principle Of Least Privileges
Ini terutama penting jika program anda berjalan sebagai root untuk setiap bagian dari runtime nya. Bila memungkinkan, program harus melepas semua hak istimewa tidak perlu, dan menggunakan hak lebih tinggi untuk hanya operasi-operasi yang membutuhkan mereka. Contoh dari ini adalah mailserver Postfix, yang memiliki desain modular yang memungkinkan bagian-bagian yang membutuhkan hak akses root untuk dijalankan jelas dari bagian-bagian mana yang tidak. Bentuk pemisahan hak istimewa mengurangi jumlah jalur serangan yang menyebabkan hak akses root, dan meningkatkan keamanan seluruh sistem karena beberapa path yang tetap dapat dianalisis secara kritis untuk masalah keamanan
4.Don 't Ras
Kondisi ras adalah situasi di mana sebuah program melakukan operasi di beberapa langkah, dan penyerang memiliki kesempatan untuk menangkapnya antara langkah dan mengubah sistem negara. Sebuah contoh akan menjadi program yang memeriksa hak akses file, kemudian membuka file. Antara izin memeriksa stat () panggilan dan file buka fopen () memanggil penyerang bisa mengubah file dibuka dengan mengganti nama file lain ke nama file asli. Untuk mencegah hal ini fopen, () file pertama, dan kemudian menggunakan fstat (), yang membutuhkan file descriptor, bukan nama file. Karena file descriptor selalu menunjuk ke file yang dibuka dengan fopen (), bahkan jika nama file kemudian berubah, fstat () panggilan akan dijamin akan memeriksa hak akses dari file yang sama. Banyak kondisi ras lain ada, dan sering ada cara untuk mencegah mereka dengan hati-hati memilih urutan eksekusi dari fungsi tertentu.
5.Register Handler Kesalahan
Banyak bahasa mendukung konsep fungsi yang dapat dipanggil ketika kesalahan terdeteksi, atau konsep yang lebih fleksibel pengecualian. Manfaatkan ini untuk menangkap kondisi tak terduga dan kembali ke titik aman dalam kode, bukan membabi buta maju dengan harapan bahwa input pengguna tidak akan crash program, atau lebih buruk!
0 comments:
Posting Komentar
Tolong yah Kawan untuk berbagi komentar anda di blog saya, satu kata yang anda tulis sejuta pahalanya bagi anda ^^v