12 Praktik Terbaik Keamanan Terbaik untuk PHP

Diterbitkan: 2021-08-14

Keamanan adalah topik penting bagi semua pengembang perangkat lunak, tetapi pengembang PHP menghadapi beberapa tantangan unik. Dalam posting blog ini, kita akan menjelajahi 12 praktik terbaik keamanan untuk PHP, bersama dengan bagaimana Anda dapat menerapkannya dalam kode Anda untuk membantu menjaga situs web Anda tetap aman dan terlindungi. Anda selalu dapat menggunakan profesional di WebCitz untuk menangani kebutuhan pemrograman PHP Anda!


1. Perbarui Versi PHP Anda Secara Teratur

Pastikan versi PHP Anda mutakhir untuk meminimalkan risiko kerentanan keamanan. Menambal sering kali memperbaiki bug yang diketahui, jadi penting bagi Anda untuk memanfaatkannya saat dirilis.

Peretas sudah mulai mengeksploitasi kelemahan terbaru di PHP. Anda yang memiliki rilis lama akan rentan terhadap gangguan mereka kecuali jika Anda mengubah pengaturan Anda!

Anda dapat mencoba rilis pratinjau, tetapi penasihat keamanan memperingatkan perusahaan untuk menghindari rilis pratinjau perangkat lunak baru karena mereka mungkin masih memiliki kelemahan keamanan yang tidak diketahui.

Logo PHP

2. Jangan Mengekspos Data Sensitif ke Internet Melalui Koneksi Tidak Terenkripsi

Banyak situs web yang masih rentan karena pengembangnya melakukan kesalahan dengan mengekspos basis data atau kredensial sistem file di Internet publik menggunakan protokol FTP yang tidak dilindungi, akun email tanpa perlindungan SSL, dll.

Lindungi file dan folder ini dengan mengenkripsinya sebelum mengirimkannya melalui koneksi jaringan apa pun yang tidak dienkripsi dengan TLS/SSL.

Grafik kunci keamanan

3. Lindungi Dari Serangan Injeksi SQL

Kerentanan injeksi SQL (Structured Query Language) terjadi ketika input pengguna digunakan dalam kueri tanpa validasi yang tepat dari jenis dan tujuannya, yang membahayakan keandalan hasil yang ditunjukkan dengan mengikuti kueri yang digabungkan dari string yang dikirimkan.

Kedengarannya rumit, tetapi yang perlu Anda ketahui adalah bahwa serangan ini dapat mengekspos data bisnis dan informasi sensitif Anda.

Cara terbaik untuk melindungi dari serangan injeksi SQL adalah dengan mengamankan input – menghentikan peretas dari menyuntikkan kode mereka sendiri ke situs web melalui bidang formulir atau kotak keluar. Anda ingin membersihkan nilai yang dikirimkan pengguna sebelum memasukkannya ke dalam kueri SQL, seperti: $input = filter_var($_POST['field'], FILTER_SANITIZE_STRING); if(!empty($input)){ echo “Anda memasukkan: “.$input.”

“; }else{echo 'Silakan masukkan sesuatu';} . Perhatikan bagaimana kami menggunakan kosong () untuk memastikan tidak ada bidang kosong.

Kunci keamanan berturut-turut berwarna biru selain yang berwarna merah di tengah dan tidak terkunci

4. Pastikan Anda Menyimpan Data Sensitif dengan Aman

Dalam hal menjaga keamanan kata sandi dan informasi kartu kredit, tidak ada ruang untuk kesalahan – taruhannya terlalu tinggi jika peretas mendapatkan akses ke file atau basis data yang berisi informasi ini!

Untuk meminimalkan risiko terjadinya serangan seperti itu, selalu gunakan algoritme enkripsi yang kuat saat menyimpan data sensitif di database Anda – sebaiknya yang memiliki enkripsi AES 128-bit seperti SHA512_RSA.

Ada juga perangkat lunak yang tersedia yang membuat pengelolaan database terenkripsi menjadi lebih mudah: MySQL Encryption Utilities (MEU). Penting untuk dicatat bahwa MEU hanya mengenkripsi bidang teks dalam database MySQL, tetapi itu cukup baik untuk sebagian besar kasus penggunaan.

orang yang bekerja di rak server

5. Jangan Gunakan Kembali Kata Sandi

Menggunakan kembali kata sandi yang sama berulang kali adalah cara pasti untuk membuat akun Anda diretas lebih cepat! Jika Anda menggunakan fungsi bawaan PHP untuk menghasilkan string teks acak (seperti Rand()), ingatlah bahwa mereka hanya berumur pendek, jadi pastikan untuk mengubahnya setidaknya setiap beberapa bulan.

Anda ingin memasukkan huruf besar, huruf kecil, angka dan simbol. Juga tidak ada salahnya untuk memiliki aturan yang lebih kompleks seputar kapan string baru harus dibuat juga – seperti sekali seminggu atau setelah tiga kali percobaan login dengan kata sandi yang salah. Bahkan ada perangkat lunak yang tersedia yang dapat menghitungnya untuk Anda!

Bidang login nama pengguna dan kata sandi

6. Pastikan Aplikasi Anda Tidak Rentan terhadap Serangan XSS

XSS (Cross-Site Scripting) adalah serangan di mana kode berbahaya disuntikkan ke situs web, dan kemudian dieksekusi di browser pengunjung. Ini sering dapat menyebabkan pencurian cookie atau pembajakan sesi, yang memberi peretas akses ke semua data sensitif Anda tanpa harus memasukkan kredensial mereka sendiri – seperti kata sandi atau nomor kartu kredit.

Kerentanan ini dapat dieksploitasi dengan menggunakan validasi formulir JavaScript di halaman web, sehingga setiap input yang dimasukkan oleh pengunjung akan dieksekusi secara otomatis melalui penyegaran halaman, menampilkan hyperlink dengan konten aktif seperti gambar di dalamnya, dan menambahkan parameter yang disediakan pengguna ke URL dinamis seperti '? akun=123' dll.

hacker duduk di meja

7. Lindungi dari Serangan CSRF

CSRF (Pemalsuan Permintaan Lintas Situs) adalah jenis serangan di mana perintah yang tidak sah dikirimkan dari situs penyerang ke aplikasi web Anda. Hal ini dapat menyebabkan pembajakan sesi atau pencurian cookie, antara lain.

Sekilas mungkin tampak sulit, tetapi yang perlu Anda lakukan hanyalah memberikan token tambahan yang memerlukan verifikasi untuk tindakan apa pun yang dapat mengungkap informasi sensitif, seperti masuk ke akun pengguna lain – ini akan memastikan bahwa tidak hanya satu satu titik kerentanan dan pastikan akun otomatis tidak digunakan di situs web Anda.

peretasan orang

8. Jangan Lupakan Patch Biasa!

Seringkali tidak perlu dikatakan, tetapi Anda harus terus menambal kerentanan baru saat dirilis oleh penyedia sistem atau vendor perangkat lunak Anda.

Anda tidak pernah tahu lubang keamanan apa yang ditemukan orang lain tetapi Anda tidak menyadarinya, dan lebih baik tetap terinformasi daripada situs web Anda diretas!

orang yang meretas dengan kata keamanan di belakangnya

9. Jangan Biarkan Mode Debug Diaktifkan di Lingkungan Produksi

Kode debug sering memiliki kemampuan untuk mengaktifkan hal-hal seperti pengeditan file jarak jauh (menggunakan fopen()) dan menghasilkan kueri SQL mentah melalui mysql_query().

Ini bagus jika Anda ingin menghasilkan pelacakan tumpukan penuh saat terjadi kesalahan, tetapi ini membuka risiko keamanan utama di situs web produksi Anda. Menonaktifkan fungsi-fungsi ini dan menghapus semua instance di mana mereka digunakan akan menghemat banyak waktu Anda dalam hal menambal bug juga!

grafik kaca pembesar di atas serangga yang ada di layar komputer

10. Periksa Firewall untuk Port Terbuka

Mungkin tergoda untuk menekan 'berikutnya' setiap kali Windows selesai menginstal pembaruan, tetapi jangan lupa untuk memeriksa layanan apa yang sedang berjalan dan apakah semuanya telah dikonfigurasi dengan benar atau tidak – termasuk memperbarui firewall juga jika diperlukan.

Ini akan membantu menjaga pengunjung yang tidak diinginkan keluar jika peretas tidak dapat menemukan titik masuk ke sistem Anda di mana mereka dapat melakukan serangan dengan mudah.

orang yang melihat layar komputer dengan kode di atasnya

11. Jangan Gunakan “admin” sebagai Nama Akun

Jika Anda ingin melindungi diri dari orang lain yang mengakses situs Anda dengan menebak kata sandi, coba gunakan nama pengguna lain, seperti “admin” atau sesuatu yang tidak terlalu jelas.

Jika seseorang mencoba mengakses akun Anda, mereka akan lebih sulit menebak kata sandinya dan juga lebih sulit bagi peretas untuk mengeksploitasi metode brute force jika Anda menggunakan nama pengguna yang tidak biasa!

tombol pada keyboard dengan sidik jari sebagai kunci

12. Tetap Up-to-Date Dengan Kerentanan Baru

Ini mungkin tampak menakutkan pada awalnya, tetapi tetap mendapat informasi tentang lubang keamanan yang ditemukan orang lain akan membantu menjaga sistem Anda tetap aman jika terjadi kebocoran.

Melacak semua pembaruan itu bisa jadi sulit – untungnya ada banyak alat yang tersedia sekarang yang membuat tugas ini lebih mudah daripada sebelumnya. Salah satu alat tersebut disebut 'Dukungan Jangka Panjang Debian', yang dirancang untuk mendukung beberapa versi OS dan semua jenis perangkat lunak – termasuk server web dengan PHP.

orang tersenyum ke kamera saat menggunakan komputer

Kesimpulan

Kesimpulannya, ini hanya beberapa praktik keamanan terbaik yang dapat Anda terapkan ke situs web Anda agar tetap aman. Ini tidak selalu mudah, tetapi jika Anda meluangkan waktu untuk berusaha, maka Anda akan dihargai dengan kehadiran online yang kecil kemungkinannya untuk diretas!