Đề xuất của tôi là xây dựng một chức năng để làm sạch tất cả các đầu vào văn bản của bạn và một chức năng để kiểm tra tất cả các đầu ra của bạn đến từ cơ sở dữ liệu hoặc bất kỳ nguồn nào khác, như sau:
<?php
// filter for user input
function filterInput($content)
{
$content = trim($content);
$content = stripslashes($content);
return $content;
}
//filter for viewing data
function filterOutput($content)
{
$content = htmlentities($content, ENT_NOQUOTES);
$content = nl2br($content, false);
return $content;
}
tùy thuộc vào chiến lược của bạn, bạn có thể thêm các tính năng bổ sung vào bộ lọc hoặc xóa một số. Nhưng những gì bạn có chức năng ở đây đủ để bảo vệ bạn khỏi XSS.
CHỈNH SỬA: ngoài chức năng trên, câu trả lời này cũng có thể có liên quan trong một phần của việc bảo vệ trang web của bạn.
Tham khảo các phương pháp khác nhau:
- trim: http://php.net/manual/en/ Chức năng. trim.php
- dải chớp: http://php.net/manual/en/ Chức năng. dảilash.php
- htmlentities: http://php.net/manual/en/ Chức năng. htmlentities.php
- nl2br: http://php.net/manual/en/ Chức năng. nl2br.php
Bạn cũng nên xem các liên kết sau:
- Cái gì phương pháp tốt nhất để khử trùng đầu vào của người dùng bằng PHP?
- Chức năng sạch / an toàn tối ưu
Và quan trọng là bạn nên biết về 10 rủi ro hàng đầu và tìm hiểu thêm về nó.