Tentu sebagai sysadmin perlu paham tentang seluk beleluk keamanan dalam sebuah sistem, atau Developer Backend yang menggunakan PHP mungkin juga penasaran, belum tentu env development itu aman digunakan untuk production.
Mari kita bahas
#1. Ketahui Musuhmu
PHP dapat di serang dengan berbagai teknik, berikut saya rangkum dari beberapa sumber.
1. XSS merupakan kependekan yang digunakan untuk istilah cross site scripting. XSS merupakan salah satu jenis serangan injeksi code (code injection attack). XSS dilakukan oleh penyerang dengan cara memasukkan kode HTML atau client script code lainnya ke suatu situs.
2. Injeksi SQL (Bahaasa Inggris: SQL Injection)adalah sebuah teknik yang menyalahgunakan sebuah celah keamanan yang terjadi dalam lapisan basis data sebuah aplikasi.
3. File Upload, Bagian ini juga harus di perhatikan, tidak ada seorangpun yang mau ada file berbahaya yang diupload pada website kita.
4. Including local & Remote file, disini peretas akan bisa membuka file pada server dan mengeksekusi file php, dan hampir bisa melakukan apapun
5. eval() ini sering digunakan pereteas untuk menyembunyikan file yang mereka masukan didalam server.
6. CSRF (Cross-site Request Forgery) CSRF (Cross-site Request Forgery) merupakan suatu teknik hacking untuk mendapatkan atau bahkan menguasai suatu account dengan cara menyerang web yang dieksekusi atas wewenang korban, tanpa dikehendakinya.
#2 Cermati Modul PHP yang terpasang
Untuk melihat modul apa saja yang terpasang dapat menggunakan perintah
php -m
Contoh output
[PHP Modules]
calendar
Core
ctype
date
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
openssl
pcntl
pcre
PDO
Phar
posix
readline
Reflection
session
shmop
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib
[Zend Modules]
Zend OPcache
Saya menyarankan mematikan modul modul yang tidak digunakan. cara untuk mematikan modul php yang tidak digunakan adalah. cara untuk mematikan modul yang tidak di gunakan adalah dengan perintah
php2dismod NAMAMODUL
untuk mengaktifkan kembali modul menggunakan perintah
phpenmod NAMAMODUL
#3 Batasi Informasi Tentang Versi PHP
Untuk membatasi kebocoran tentang versi PHP yang digunakan dapat mengedit bagian di bawah ini, pada file php.ini
expose_php=Off
Bila mana expose on maka kebocoran informasi versi php akan terjadi, yang biasanya akan muncul seperti X-Powered-By: PHP xxx, seperti contoh di bawah ini,
curl -I https://akakom.ac.id
HTTP/1.1 200 OK
Server: nginx/1.10.1
Date: Fri, 27 Apr 2018 16:14:15 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.5.9-1ubuntu4.20
Set-Cookie: _csrf=b2d0519289a563dee28cb63b467b03ec99f1db2933a0300745bc7d6e1bc28276a%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22jqBzdGEwJUjRN2D_8RyA2nluzru-E4or%22%3B%7D; path=/; httponly
#4 Nyalakan Error Log Untuk PHP
Jangan tampilkan sama sekali error report pada server production, maka ada baiknya display error di ganti menjadi Off
display_errors=Off
Kemudian pastikan error log aktif
log_errors=On
error_log=/var/log/httpd/php_scripts_error.log
#5 Jangan Izinkan Pengguna Untuk Upload
Bila pada situs yang tidak memerlukan fitur upload ada baiknya juga fitur upload di nonaktifkan
file_uploads=Off
Bilamana ternyata file upload di perlukan tentukan juga batasan upload maksimal pada server
file_uploads=On
upload_max_filesize=1M
Berlanjut Ke Bagian 2
0 Komentar