2011-10-24 29 views
6

Tôi muốn biết nếu nó an toàn để lưu tên người dùng, mật khẩu, máy chủ, vv ... trong tập tin php.ini vì vậy khi tôi kết nối với máy chủ mysql tôi không phải luôn luôn đặt các tham số?Việc lưu tên người dùng/mật khẩu MySQL trong tệp php.ini có an toàn không?

Ngoài ra, thông tin này (được lưu trong tệp php.ini) có thể được xem hoặc truy lục bằng bất kỳ loại phương thức nào (như phpinfo() hoặc một cái gì đó tương tự) không?

Cảm ơn

Trả lời

6

Miễn là bạn đảm bảo tệp ini nằm ngoài DOCUMENT_ROOT và không thể đọc được trên thế giới, nó không kém an toàn hơn bất kỳ phương pháp nào khác.

+0

+1 để đề xuất giữ tệp bên ngoài docroot. Điều này làm giảm bề mặt tấn công thông qua các lỗ hổng phổ biến khác. – Cheekysoft

3

Bạn không phải đặt thông tin đó trong thông số mỗi lần. Bạn có thể xác định kết nối trong một tệp riêng biệt (dbconnection.php) và bao gồm trong các tệp cần kết nối cơ sở dữ liệu.

3

Nó không phải là an toàn, vì bạn có thể đọc các file ini với phương pháp php: parse_ini_file

+1

Tôi nghĩ đây là một đối số không hợp lệ. Nếu bạn muốn có thể đọc được user/pass thông qua PHP để tạo một kết nối, thì phương thức * any * mà bạn sử dụng để lưu trữ user/pass sẽ phải được đọc bởi PHP ... –

+0

"Anh ta hỏi rằng thông tin có thể được lấy ra bởi bất kỳ phương pháp "Nhưng điều này là * luôn luôn * đúng sự thật. Tức là, bằng cùng một logic, việc lưu người dùng/vượt qua trong một chuỗi trong một thuộc tính riêng của lớp db là không an toàn, bởi vì tôi có thể thấy nó với print_r ($ db). –

+0

"họ sẽ không bao giờ cho phép bạn gây rối với tập tin ini của họ" - Có vẻ như bạn đang giả sử anh ta muốn đưa người dùng/pass vào trong php.ini toàn cầu. Nó không cần thiết. Bạn có thể tạo các tệp ini cục bộ của riêng mình để lưu trữ các thiết lập cục bộ, và nó không kém an toàn hơn việc đặt các thiết lập trong nguồn PHP. –

0

Nó sẽ là nhiều hơn nữa an toàn, nếu bạn đã đặt nó trong một tập tin mà không có một phần mở rộng, và sau đó bảo vệ tập tin đó với .htaccess. Ngoài ra, tập tin .ini có thể được đọc bởi bất kỳ trình duyệt nào, do đó sẽ không an toàn.

1

Tôi không nghĩ có nguy cơ bảo mật liên quan đến việc lưu bất kỳ cấu hình nào trong tệp php.ini vì vị trí của tệp ini nằm ngoài thư mục "công khai". Không người dùng nào có thể truy cập tệp này.

Bạn có thể lấy tham số ini bằng cách sử dụng hàm "ini_get" php. Bạn có thể tìm thêm thông tin về thông số này từ đây: http://php.net/manual/en/function.ini-get.php

0

Như đã nêu ở trên, tệp .ini có thể không an toàn hơn hoặc ít hơn lưu trữ trong tệp .php. Tuy nhiên, một điều cần xem xét là khi sử dụng tệp .ini, cài đặt này có hiệu quả toàn cầu đối với bất kỳ và tất cả mã PHP và trang web. Sử dụng tệp .ini có thể ảnh hưởng đến mã khác mà bạn muốn sử dụng một người dùng khác. Tổng quan, đây có thể là thực hành bảo mật tốt nhất để KHÔNG sử dụng tệp .ini để lưu trữ mật khẩu, đơn giản vì nó bây giờ mở cho bất kỳ ai lưu trữ các tệp PHP trên máy chủ của bạn. Cũng làm cho nó một chút rắc rối nếu bạn đột nhiên cần phải cung cấp cho nhiều trang web hoặc các ứng dụng cho một trang web đăng nhập khác nhau (cho cơ sở dữ liệu riêng biệt). Tốt nhất không nên sử dụng một đăng nhập cho nhiều cơ sở dữ liệu, ngoại trừ người dùng root chỉ nên được sử dụng cho mục đích quản trị.

Các vấn đề liên quan