Bảo mật
Người dùng chạy
Khuyến nghị đặt người dùng chạy là người dùng có quyền thấp hơn, chẳng hạn như giống với người dùng chạy nginx. Người dùng chạy được thiết lập trong config/server.php
tại user
và group
.
Tương tự, người dùng cho các tiến trình tùy chỉnh được chỉ định qua user
và group
trong config/process.php
.
Cần lưu ý rằng, tiến trình monitor không nên đặt người dùng chạy, vì nó cần quyền cao để hoạt động bình thường.
Quy chuẩn điều khiển viên
Thư mục controller
hoặc các thư mục con chỉ được phép chứa các tệp điều khiển viên, cấm chứa các tệp lớp khác, nếu không, trong trường hợp không bật đuôi điều khiển, các tệp lớp có thể bị truy cập bất hợp pháp qua url, gây ra hậu quả không thể đoán trước.
Ví dụ, app/controller/model/User.php
thực sự là lớp Model, nhưng lại bị đặt sai trong thư mục controller
, và khi không bật đuôi điều khiển, điều này sẽ dẫn đến việc người dùng có thể truy cập bất kỳ phương thức nào trong User.php
thông qua các đường dẫn tương tự như /model/user/xxx
.
Để hoàn toàn ngăn chặn tình huống này, khuyến nghị mạnh mẽ sử dụng đuôi điều khiển để đánh dấu rõ ràng những tệp nào là tệp điều khiển viên.
Lọc XSS
Xét về tính phổ quát, webman không thực hiện thoát XSS đối với yêu cầu.
Webman khuyến nghị mạnh mẽ thực hiện thoát XSS khi thực hiện render, thay vì thực hiện thoát trước khi lưu trữ.
Hơn nữa, các mẫu như twig, blade, think-template sẽ tự động thực hiện thoát XSS, không cần phải thoát thủ công, rất thuận tiện.
Mẹo
Nếu bạn thực hiện thoát XSS trước khi lưu trữ, rất có thể sẽ gây ra một số vấn đề không tương thích với các plugin ứng dụng.
Ngăn chặn tiêm SQL
Để ngăn chặn tiêm SQL, hãy cố gắng sử dụng ORM, chẳng hạn như illuminate/database, think-orm, khi sử dụng hãy cố gắng không tự tạo SQL.
Proxy nginx
Khi ứng dụng của bạn cần được công khai cho người dùng bên ngoài, khuyến nghị mạnh mẽ đặt một proxy nginx phía trước webman, điều này có thể lọc một số yêu cầu HTTP bất hợp pháp, tăng cường tính bảo mật. Vui lòng tham khảo proxy nginx.