记住一句话,千万不要相信用户输入的都是我们正常思维想到的东西,XSS是什么鬼?
首先我们对用户所有提交的数据都通过 PHP 的 htmlspecialchars() 函数处理。
当我们使用 htmlspecialchars() 函数时,在用户尝试提交以下文本域:
<script>location.href('http://www.wenbo.com')</script>
- 该代码将不会被执行,因为它会被保存为HTML转义代码,如下所示:
<script>location.href('http://www.wenbo.com')</script>
以上代码是安全的,可以正常在页面显示或者插入邮件中。
当用户提交表单时,我们将做以下两件事情,:
- 使用 PHP trim() 函数去除用户输入数据中不必要的字符 (如:空格,tab,换行)。
- 使用PHP stripslashes()函数去除用户输入数据中的反斜杠 (\)
/**
* html 转码用户输入 防止xss攻击
* @param $input
* @return string
*/
function check_input($input){
$input = trim($input);//去除空格
$input = stripslashes($input);//stripslashes()函数去除用户输入数据中的反斜杠 (\)
$input = htmlspecialchars($input);//htmlspecialchars() 函数会将用户输入的html和js脚本进行转码
return $input;
}