File konfigurasi

Sebisa mungkin taruhlah di luar documentroot, agar menutup kemungkinan dapat terbaca oleh webserver secara mentah (bisa saja terjadi jika oleh satu dan lain hal terjadi kesalahan konfigurasi webserver misalnya, sehingga file berektensi .php atau .cgi tidak diproses oleh interpreter PHP/CGI melainkan dibaca dan dikembalikan mentah oleh webserver). Misalnya, di server hosting berbasis Spanel, alih-alih menaruh di sites/NAMASITE/www/config.php, Anda dapat menaruh di sites/NAMASITE/etc/config.php.

Di server hosting berbasis Spanel, permission yang dianjurkan adalah 640, agar menutup kemungkinan terbaca oleh webserver secara mentah (bisa saja terjadi jika oleh satu dan lain hal terjadi kesalahan konfigurasi webserver misalnya, sehingga file berektensi .php atau .cgi tidak diproses oleh interpreter PHP/CGI melainkan dibaca dan dikembalikan mentah oleh webserver).

Ada baiknya juga Anda memberikan perlindungan ekstra lewat .htaccess seandainya file konfigurasi ini Anda taruh di dalam documentroot, misalnya:

<Files config.php>
   deny from all
</Files>

File-file program (skrip PHP, CGI, dsb)

Di server hosting berbasis Spanel, permission yang dianjurkan adalah 640, agar menutup kemungkinan terbaca oleh webserver secara mentah (bisa saja terjadi jika oleh satu dan lain hal terjadi kesalahan konfigurasi webserver misalnya, sehingga file berektensi .php atau .cgi tidak diproses oleh interpreter PHP/CGI melainkan dibaca dan dikembalikan mentah oleh webserver).

Admin area

Proteksi ganda: password/session dan alamat IP. Jika Anda memiliki admin area (istilah lain: back room, protected area, staff area) yaitu area yang hanya diperuntukkan bagi staf-staf saja, misalnya untuk memasukkan berita, melakukan administrasi, dsb, dan staf Anda mengakses admin area ini dari satu atau beberapa alamat IP tertentu saja yang tetap, maka Anda bisa membatasi akses terhadap admin area ini untuk IP tertentu saja. Misalnya, di admin/.htaccess:

order allow,deny
allow from 1.2.3.4
allow from 5.6.7.8
allow from 5.6.7.9

Dengan demikian ini mengurangi risiko admin area Anda dimasuki oleh penyerang dari Internet, terutama jika ada staf Anda yang menggunakan user/password yang pendek dan/atau mudah ditebak.

Form

SQL

  • quoting: $dbh->prepare instead of $dbh->do() and manual quoting

XSS

  • htmlentities
  • urlencode

XSRF

Shell (system, exec)