2011-12-15 45 views
5

Tôi đã được đọc một số mã WordPress PHP trên GitHub và tôi thấy rằng tác giả (một nhà phát triển Senior WordPress) đã đưa dòng mã này vào đầu của mỗi tập tin:Bảo vệ file PHP từ truy cập trực tiếp

defined('ABSPATH') or die("Cannot access pages directly."); 

Làm cách nào để bảo vệ tệp khỏi truy cập trực tiếp? Không thể tin tặc chỉ định nghĩa ABSPATH không đổi và sau đó tải tệp?

Ngoài ra, tại sao truy cập trực tiếp lại nguy hiểm?

Trả lời

7

Hằng số này có thể được đặt trong tệp PHP chính của WordPress, vì vậy nếu nó không được đặt, thì bạn không truy cập trang chính.

Constants không phải là điều mà người dùng có thể sửa đổi, họ có trong mã và chỉ có thể được thay đổi bằng cách chỉnh sửa tệp PHP. Vì vậy, nếu một hacker có thể thiết lập hằng số này, thì bạn sẽ có những vấn đề lớn hơn, bởi vì điều đó sẽ liên quan đến anh ta thực sự chỉnh sửa các tệp PHP của bạn.

Truy cập trực tiếp có thể không nguy hiểm (không báo cho tôi), nhưng nó là vô nghĩa. Trực tiếp truy cập vào một plugin WordPress (ví dụ) sẽ không làm bất cứ điều gì, như các plugin cần phải chạy qua WordPress.

0

Bình thường bạn không thể khai báo các biến phía máy chủ để nó an toàn.

lẽ Hầu hết các trang khác đặt biến mà theo một số tiêu chí, (vượt qua xác minh, ip hoặc bất cứ điều gì bạn muốn)

Như đã nói rằng trang một mình làm việc sẽ không bởi vì nó cần phải đọc rằng biến từ someware (một bao gồm hoặc trang này được bao gồm trong)

0

Truy cập trực tiếp có thể nguy hiểm - vì hacker có thể tìm ra logic nghiệp vụ của bạn và có thể tìm mọi cách xung quanh nó (những thứ không được viết trong mã để tự bảo vệ bạn).

khả năng khác là điều được viết mã cứng vào chương trình mà có thể dẫn đến truy cập trực tiếp đến cơ sở dữ liệu, đạt kiến ​​thức về mạng của bạn, vv ...

1
defined('ABSPATH') or die("Cannot access pages directly."); 

hằng số này được định nghĩa trong file gốc như index.php.
để kiểm tra xem ABSPATH đã được định nghĩa sao cho tệp này có trong thư mục gốc hoặc tệp khác không.
và không truy cập trực tiếp bằng URL.
cách này là một trong những cách tốt nhất để bảo vệ tệp khỏi truy cập trực tiếp

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