it-swarm-id.com

Apakah aman untuk menyimpan kata sandi basis data dalam file PHP?

File connection.php Saya menyimpan kredensial untuk terhubung ke database:

<?php 
    $objConnect = mysql_connect("localhost","username","password"); 
    mysql_select_db("selectDB", $objConnect);
?>

Ketika sebuah halaman perlu menghubungkan database saya hanya menggunakan <?php include("connection.php"); ?>.

Apakah ini aman? Bisakah hacker mencuri kredensial saya dari file itu?

32
OammieR

Rekomendasi saya: Jangan menyimpan kata sandi dalam kode sumber.

Sebaliknya, simpan di file konfigurasi (di luar root web), dan pastikan file konfigurasi tidak dapat diakses secara publik. Alasannya adalah bahwa Anda biasanya tidak ingin kata sandi Anda diperiksa di repositori kode sumber atau diekspos kepada semua orang yang dapat melihat file di root web Anda.

Ada risiko tambahan dengan menyimpan kata sandi di .php file dalam webroot Anda, yang agak tidak jelas tetapi dapat dengan mudah dihindari dengan menempatkan file di luar root web Anda. Pertimbangkan: jika Anda mengedit connection.php menggunakan editor teks, dan koneksi Anda turun saat Anda mengeditnya, editor Anda akan secara otomatis menyimpan salinan connection.php file dalam beberapa file cadangan: mis., connection.php~ (dalam direktori yang sama). Sekarang file cadangan memiliki ekstensi yang berbeda, jadi jika seseorang mencoba mengambil file itu, server Apache akan dengan senang hati menyajikan salinan file dalam plaintext, mengungkapkan kata sandi basis data Anda. Lihat 1% Situs Bertenaga CMS Mengekspos Kata Sandi Database untuk detailnya.

Lihat juga Bagaimana proyek open source menangani artefak yang aman? , Open Source dan cara kerjanya untuk proyek yang aman?

35
D.W.

Itu cukup aman. Untuk mendapatkan konten file php, seorang peretas perlu mengkompromikan server Anda, atau Anda perlu salah mengonfigurasinya.

Tetap saya sarankan mengonfigurasi mysql sehingga pengguna yang digunakan oleh skrip tidak dapat diakses dari jarak jauh, dan menggunakan pengguna lain untuk akses jarak jauh administratif.

11
CodesInChaos

Masalahnya muncul jika Anda memiliki skrip PHP yang mungkin mengunduh file di server Anda mis. download.php?=index.php.

Jika Anda memeriksa Google, Anda akan melihat bahwa kerentanan ini ada di banyak situs lain.

5
Victor Casé