2012-12-20 27 views
5

thể trùng lặp:
Putting core classes above the web root - good or bad idea?Tại sao đặt thông tin đăng nhập MySQL bên ngoài thư mục www?

Tôi tiếp tục đọc rằng đó là một thực hành tốt nhất để đưa thông tin kết nối MySQL (cho dù đó là một lớp học, định nghĩa, vv ..) bên ngoài của rễ web (phía trên thư mục www).

Tại sao điều này? Nếu thông tin đăng nhập nằm trong tệp .php thì không quan trọng nếu tệp có thể truy cập được qua trình duyệt phải không?

+3

Cho đến thời điểm xuất hiện khi máy chủ web bị định cấu hình sai và vô tình phân phát nguồn PHP thay vì diễn giải nó. –

Trả lời

8

Đó là biện pháp phòng ngừa. Nếu ai đó vô tình vô hiệu hóa đánh giá php trong máy chủ apache của bạn hoặc thay đổi cài đặt apache trong tệp .htaccess, tệp có thể được phân phát như bất kỳ tệp văn bản thuần túy nào. Hoặc, nếu bạn vô tình quên một thẻ bắt đầu php, nó sẽ được redenerd như văn bản gốc. Không phải là bạn mắc phải một sai lầm ngu ngốc như vậy, nhưng có thể một người mới làm việc trong tương lai đang làm việc trên mã của bạn có thể mắc lỗi.

Tại sao để một véc tơ có thể mở khi bạn có thể ngăn chặn nó khi có thể? Chỉ cần lấy lời khuyên của những người khác đã bắn chân của họ (hoặc như tôi, bắn cả hai bàn chân và một bàn tay) và di chuyển các thông tin bên ngoài docroot của bạn.

5

Bởi vì, ở một mức độ nhất định, không có gì dưới gốc web là an toàn. Nó có sẵn trên Internet, mà làm cho nó vốn không an toàn.

Luôn tồn tại khả năng máy chủ định cấu hình sai một ngày có thể xuất nội dung của bất kỳ tệp PHP nào, thay vì gửi nó tới PHP để được diễn giải. Cũng có quá nhiều người đang cố gắng truy cập vào cơ sở dữ liệu của bạn theo bất kỳ cách nào họ có thể ... một số người trong số họ chỉ cho vui.

Trong bất kỳ tình huống cụ thể nào, bạn phải luôn sử dụng các phương pháp bảo mật nhất hiện có. Đó là một thói quen tốt để tham gia.

Ngoài ra, bạn nên không bao giờ sử dụng mật khẩu gốc trong ứng dụng web của bạn. Tạo một người dùng đặc biệt với các đặc quyền tối thiểu.

Đối với PHP tôi luôn luôn sử dụng một tập tin .ini để lưu trữ cấu hình nhạy cảm ...

<?php 
    $config = parse_ini_file('../config.ini'); 
?> 
+2

vui lòng xây dựng. –

+1

Bạn có sử dụng tệp ini cho sở thích cá nhân hoặc có lý do cụ thể không? –

+0

. Các tệp .ini được nạp bởi PHP lúc khởi động và thông tin được giữ lại trong suốt quá trình của quá trình. Thêm vào đó, nó là một sở thích cá nhân. Vì các tệp .ini có nguồn gốc từ PHP (nghĩ JavaScript và JSON), chúng chỉ có ý nghĩa đối với các tùy chọn cấu hình. –

2

Bởi vì những gì bên trong www thư mục (ví dụ: thư mục gốc của trang web của bạn) có thể có khả năng truy cập từ internet.

Điều đó có nghĩa là nếu bạn đặt thông tin đăng nhập của mình tại đây, có thể ai đó sẽ có thể truy cập chúng và kết nối trực tiếp với DB của bạn.

Đưa thông tin đăng nhập của bạn bên ngoài thư mục này đảm bảo rằng nó sẽ không thể truy cập theo cách này.

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