Video: Lập trình PHP: BẢO MẬT FORM VỚI TOKEN 2025
Nếu ứng dụng của bạn chạy trên Apache (vì hơn một nửa các trang web trên Internet làm), bạn có thể muốn xem xét cho phép SuExec trong cấu hình Apache của bạn. SuExec là một cơ chế đi kèm với Apache làm cho các kịch bản được chạy như người dùng sở hữu kịch bản chứ không chạy chúng như là người dùng máy chủ web.
Trong môi trường không phải là SuExec, tất cả các kịch bản được chạy như cùng một ID người dùng với chính máy chủ web. Thật không may, một tập lệnh dễ bị tổn thương có thể cho phép người dùng độc hại truy cập vào toàn bộ máy chủ web, bao gồm các kịch bản chạy trên các trang web khác được lưu trữ trên cùng một máy chủ.
SuExec cố gắng giảm thiểu vấn đề này bằng cách giới hạn các ứng dụng web vào các khu vực riêng của họ và chạy chúng dưới các ID người dùng của chủ sở hữu, thay vì dưới ID người dùng của máy chủ web. Ví dụ: tập lệnh này sẽ chạy dưới ID người dùng của jsmith:
/ home / ~ jsmith / public_html / scripts / please_hack_me. php
Một người dùng độc hại có thể khai thác kịch bản này, nhưng anh ta sẽ chỉ truy cập vào các tệp và chương trình mà người dùng jsmith được phép sử dụng. Mỗi người dùng khác trên máy chủ sẽ được bảo vệ khỏi kịch bản không an toàn của jsmith.
>Thật không may, việc SuExec hoạt động đúng với máy chủ ảo, hoặc nhiều trang web độc lập nằm trên cùng một máy chủ web, có thể rất phức tạp. SuExec được thiết kế để chạy các tập lệnh tồn tại trên cơ sở tài liệu của máy chủ web.
Hầu hết các máy ảo được thiết lập theo cách cho phép từng trang tài liệu gốc của riêng bạn và mỗi tài liệu gốc của mỗi trang web không nằm dưới gốc tài liệu của máy chủ web. Để vượt qua giới hạn này, quản trị viên hệ thống phải thêm tài liệu gốc của mỗi máy chủ ảo vào biến gốc tài liệu của máy chủ web trong tệp cấu hình Apache.
Đối với các máy chủ web khá đơn giản, SuExec có thể giữ một ứng dụng không an toàn từ chà đạp tất cả mọi thứ khác. Tuy nhiên, trong một môi trường phức tạp hơn với các máy chủ ảo, các mô-đun biên dịch và hàng chục hoặc hàng trăm người dùng, bạn cần một mô hình bảo mật mạnh hơn một chút.