了解js (xss)攻击:/qq_30202073/article/details/87777264
规避方法
过滤特殊字符(第一种)
避免XSS的方法之一主要是将用户所提供的内容进行过滤,许多语言都有提供对HTML的过滤:
- PHP的htmlentities()或是htmlspecialchars()。
- Python的()。
- ASP的()。
- 的()或功能更强的Microsoft Anti-Cross Site Scripting Library
- Java的xssprotect (Open Source Library)。
- 的node-validator。
使用HTTP头指定类型(第二种)
很多时候可以使用HTTP头指定内容的类型,使得输出的内容避免被作为HTML解析。如在PHP语言中使用以下代码:
<?php
header('Content-Type: text/javascript; charset=utf-8');
?>
即可强行指定输出内容为文本/JavaScript脚本(顺便指定了内容编码),而非可以引发攻击的HTML。
预防XSS攻击
从根本上说,解决办法是消除网站的XSS漏洞,这就需要网站开发者运用转义安全字符等手段,始终把安全放在心上。
简单点,就是过滤从表单提交来的数据,使用php过滤函数就可以达到很好的目的。
htmlspecialchars() 函数
代码实例:
<?php
if (isset($_POST['name'])){
$str = trim($_POST['name']); //清理空格
$str = strip_tags($str); //过滤html标签
$str = htmlspecialchars($str); //将字符内容转化为html实体
$str = addslashes($str); //防止SQL注入
echo $str;
}