it-swarm-vi.com

Lưu trữ mật khẩu cơ sở dữ liệu trong tệp PHP có an toàn không?

Tệp connection.php Của tôi lưu trữ thông tin đăng nhập để kết nối với cơ sở dữ liệu:

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

Khi một trang cần kết nối cơ sở dữ liệu, tôi chỉ cần sử dụng <?php include("connection.php"); ?>.

Cái này có an toàn không? Tin tặc có thể đánh cắp thông tin đăng nhập của tôi từ tập tin đó không?

32
OammieR

Đề xuất của tôi: Không lưu trữ mật khẩu trong mã nguồn.

Thay vào đó, lưu trữ chúng trong một tệp cấu hình (bên ngoài gốc web) và đảm bảo tệp cấu hình không thể truy cập công khai. Lý do là thông thường bạn không muốn giữ mật khẩu của mình được kiểm tra trong kho lưu trữ mã nguồn hoặc tiếp xúc với mọi người có thể xem các tệp trong thư mục gốc của bạn.

Có một rủi ro bổ sung với việc lưu trữ mật khẩu trong .php tệp trong webroot của bạn, một chút tối nghĩa nhưng có thể dễ dàng tránh được bằng cách đặt tệp bên ngoài gốc web của bạn. Xem xét: nếu bạn đang chỉnh sửa connection.php bằng cách sử dụng trình soạn thảo văn bản và kết nối của bạn bị rớt trong khi bạn đang chỉnh sửa nó, trình chỉnh sửa của bạn sẽ tự động lưu một bản sao của connection.php tệp trong một số tệp sao lưu: ví dụ: connection.php~ (trong cùng thư mục). Bây giờ tệp sao lưu có một phần mở rộng khác nhau, vì vậy nếu ai đó cố gắng tìm nạp tệp đó, máy chủ Apache sẽ vui vẻ phục vụ một bản sao của tệp trong bản rõ, tiết lộ mật khẩu cơ sở dữ liệu của bạn. Xem 1% các trang web được hỗ trợ CMS thể hiện mật khẩu cơ sở dữ liệu của họ để biết chi tiết.

Xem thêm Làm thế nào để các dự án nguồn mở xử lý các tạo phẩm an toàn? , Nguồn mở và cách thức hoạt động của các dự án bảo mật?

35
D.W.

Nó hợp lý an toàn. Để có được nội dung của tệp php, một hacker cần phải thỏa hiệp máy chủ của bạn hoặc bạn cần cấu hình sai.

Tuy nhiên, tôi khuyên bạn nên định cấu hình mysql để người dùng được sử dụng bởi tập lệnh không thể truy cập từ xa và sử dụng một người dùng khác để truy cập từ xa quản trị.

11
CodesInChaos

Vấn đề xảy ra nếu bạn có tập lệnh PHP có thể tải xuống các tệp trên máy chủ của bạn, ví dụ: download.php?=index.php.

Nếu bạn kiểm tra Google, bạn sẽ thấy lỗ hổng này tồn tại trong nhiều trang web khác.

5
Victor Casé