Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Database PHP/SQL menanyakan praktik dan keamanan yang baik

Jawaban Javier yang memiliki tautan owasp adalah awal yang baik.

Ada beberapa hal lagi yang dapat Anda lakukan:

  1. Mengenai serangan injeksi SQL, Anda dapat menulis fungsi yang akan menghapus pernyataan SQL umum dari input seperti " DROP " atau "DELETE * WHERE", seperti ini:

    *$sqlarray =array( " DROP ","or 1=1",,"union select",,"SELECT * FROM",,"select host",,"buat tabel",,"FROM users",,"users WHERE");*

    Kemudian tulis fungsi yang akan memeriksa input Anda terhadap array ini. Pastikan semua hal di dalam $sqlarray tidak akan menjadi masukan umum dari pengguna Anda. (Jangan lupa untuk menggunakan strtolower ini, terima kasih lou).

  2. Saya tidak yakin apakah memcache berfungsi dengan PHP 4 tetapi Anda dapat menerapkan perlindungan spam dengan memcache dengan hanya mengizinkan akses IP jarak jauh tertentu ke halaman process.php sebanyak X kali dalam jangka waktu Y.

  3. Hak istimewa itu penting. Jika Anda hanya perlu memasukkan hak istimewa (misalnya, pemrosesan pesanan), maka Anda harus masuk ke database pada halaman proses pemesanan dengan pengguna yang hanya memiliki hak akses insert dan mungkin pilih. Ini berarti bahwa meskipun injeksi SQL berhasil, mereka hanya dapat melakukan kueri INSERT / SELECT dan tidak menghapus atau merestrukturisasi.

  4. Letakkan file pemrosesan php penting dalam direktori seperti /include. Kemudian larang semua akses IP ke direktori /include itu.

  5. Letakkan MD5 salt dengan agen pengguna + remoteip + salt Anda di sesi pengguna, dan buat itu memverifikasi pada setiap pemuatan halaman bahwa MD5 yang benar ada di cookie mereka.

  6. Larang tajuk tertentu (http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST ) . Larang PUT(Jika Anda tidak perlu mengunggah file)/TRACE/CONNECT/DELETE header.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat menampilkan nilai yang dipisahkan koma dalam tabel

  2. MySQL:mengapa varchar(254) dan bukan varchar(255)?

  3. Cara terbaik untuk menangani penyimpanan/menampilkan tanggal di zona waktu yang berbeda di PHP?

  4. Bagaimana cara menonaktifkan innodb di mysql?

  5. Pisahkan string menggunakan mysql