2010-08-06 32 views
8

Tôi đã có tài liệu "globabVars.php" trong khung công tác nhỏ của riêng mình chứa vars kết nối cơ sở dữ liệu v.v ... Tôi đang nghĩ sẽ gọn gàng để lưu trữ bên ngoài thư mục web phải đối mặt để giữ cho nó an toàn hơn một chút. Nhưng, sau đó tôi đã suy nghĩ, nó thực sự là THAT có an toàn hơn nhiều không? Ý tôi là, nếu ai đó có thể xem các tệp .php của tôi như một tổng thể (không có máy chủ xử lý chúng) thì chúng sẽ luôn ở bên trong máy chủ của tôi xem tất cả các tệp của tôi ...Ẩn các tệp PHP bên ngoài WWW cho an ninh

Suy nghĩ?

Trả lời

5

Di chuyển tệp cấu hình bên ngoài gốc web có thể ngăn tệp này bị rò rỉ nếu bạn vô tình định cấu hình sai apache. Ví dụ: nếu bạn xóa mod_php của Apache thì tất cả các tệp .php sẽ được coi là tệp văn bản. Tôi đã thấy các tệp cấu hình được di chuyển bên ngoài gốc web trên các hệ thống sản xuất vì lý do này và nó đã ngăn tệp bị rò rỉ! (Quản trị viên đã cắm cấu hình trong khi cập nhật, doah!). Mặc dù điều này không xảy ra thường xuyên.

Nếu kẻ tấn công có thể kiểm soát con đường của một trong những chức năng: file_get_contents(), fopen(), readfile() hoặc fgets() sau đó ông có thể đọc bất kỳ tập tin trên hệ thống của bạn. Bạn cũng phải lo lắng về việc tiêm sql. Ví dụ truy vấn này dưới MySQL có thể được sử dụng để đọc các tệp: select load_file("/etc/passwd").

Để giảm thiểu vấn đề này, hãy xóa các đặc quyền FILE từ tài khoản người dùng MySQL của bạn mà PHP sử dụng. Ngoài ra, hãy thực hiện một số chmod 500 -R /path/to/web/root, 2 số 0 cuối cùng sẽ giữ cho bất kỳ tài khoản nào khác truy cập vào tệp. Bạn cũng nên theo dõi nó với một số chown www-data -R /path/to/web/root trong đó www-data là tài khoản người dùng mà php được thực hiện như, bạn có thể hình dung điều này bằng cách thực hiện một <?php system('whoami');?>.

+0

Rook Rad :) Hãy để tôi hỏi bạn điều này. Nếu quyền truy cập của tôi vào các chương trình phía máy chủ bị hạn chế với những gì thường có trong quản trị viên như "cpanel", mà tôi cho là bạn đã quen thuộc, bạn có nghĩ rằng tôi có thể loại bỏ đặc quyền FILE hoặc chmod đường dẫn đó không? Tôi cảm thấy như truy cập của tôi bị giới hạn ở một cấp độ dưới web ... và tôi không nghĩ đó là nơi PHP đang ngồi. Đây có phải là cái gì tôi sẽ phải mất với một quản trị viên máy chủ? Tôi đang sử dụng hostgator btw ... bất kỳ câu chuyện kinh dị nào về họ? –

+0

@ Jascha Tôi chưa nghe thấy gì về hostgator, mặc dù hầu hết các công ty lưu trữ đã khóa tài khoản MySQL của bạn. Dễ dàng kiểm tra, thử và kích hoạt truy vấn load_file đó. Có, bạn có thể chmod tập tin với cPanel. Bạn có thể thay đổi đặc quyền MySQL bằng phpmyadmin, nhưng bạn cần quyền 'GRANT' mà bạn không nên có. – rook

2

Điều đó có nghĩa là không ai có thể truy cập thông qua URL theo mặc định.

Bạn có thể ẩn với .htaccess nếu nó trong tài liệu của bạn, nhưng lưu trữ nó trên docroot chỉ an toàn hơn một chút.

Bạn có thể đọc nó qua PHP nếu ứng dụng của bạn dễ bị directory traversal attacks.

2

Vâng, bạn đã đúng. Có một sự khác biệt rất nhỏ.

+0

Mảnh đạn Đó là suy nghĩ của tôi. Tôi không quen thuộc với bảo mật ftp, nhưng tôi nghĩ mình có thể làm tất cả các thủ thuật ưa thích mà tôi muốn kết thúc trước của kịch bản để ngăn chặn các cuộc tấn công, trong khi ai đó chỉ có thể xuất hiện qua cửa sau thông qua ftp. Đặc biệt xem xét một số ít mật khẩu khách hàng của tôi cũng giống nhau. (Đừng nói với ai). –

+0

@ Có lỗi, đó là sự thật. ngày nay các chương trình trojan ăn cắp mật khẩu ftp từ máy tính khách và sau đó lây nhiễm trang web của bạn. nhưng nó không thể là một lý do để không sử dụng bất kỳ sự bảo vệ nào khác. –

+1

Đó là một chút mỉa mai để cần bảo vệ TỪ Trojans .... xin lỗi, đã phải nói nó. –

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