Hạn chế tấn công XSS trong PHP

Cross-site scripting là một lỗ hổng phổ biến trong ứng dụng web. Để khai thác một lỗ hổng XSS, hacker sẽ chèn mã độc thông qua các đoạn script để thực thi chúng ở phía client. Thông thường, các cuộc tấn công XSS được sử dụng để vượt qua các kiểm soát truy cập và mạo danh người dùng.

Việc sử dụng PHP lập trình web mà không sử dụng các framwork có thể dẫn tới việc bị lỗ hổng XSS này. Do vậy ta có thể hạn chế tấn công XSS bằng cách lọc các biến $_GET $_REQUEST  $_POST trên url của chúng ta bằng hàm đơn giản như sau:

<?php

foreach($_REQUEST as $var => $value) {
$_REQUEST[“$var”]=htmlspecialchars($value);
}

foreach($_GET as $var => $value) {
$_GET[“$var”]=htmlspecialchars($value);
}

foreach($_POST as $var => $value) {
$_POST[“$var”]=htmlspecialchars($value);
}

?>

Như vậy ta thấy rằng các ký tự nguy hiểm html hoặc java script sẽ được hàm htmlspecialchars lọc sạch. Do đó trên url của web site không thể thực thi các cậu lệnh javascript hoặc html.

Lúc này website sẽ an toàn hơn rất nhiều đối với người sử dụng.

Giới thiệu honest 237 bài viết
Mình lập blog này với mục đích lưu lại + chia sẻ các các kiến thức mình đã biết hoặc đang tìm hiểu. Cơ bản giúp ích cho mình :) Nhưng hy vọng sẽ mang lại sự khởi đầu thuận lợi cho người mới bắt đầu!