对XSS的理解
2018年7月10日
2 min read
编程网络安全思考
##XSS跨站点脚本攻击 XSS,Cross Site Scripting,跨站点脚本攻击
xss也是一种注入攻击,当web应用对用户输入过滤不严格,攻击者写入恶意的脚本代码(HTML、JavaScript)到网页中时,如果用户访问了含有恶意代码的页面,恶意脚本就会被浏览器解析执行导致用户被攻击。
xss就是数据中的嵌入的一段恶意代码被解析执行。
xss分为反射型、存储型和DOM型。
反射型一般只能触发一次,需要用户点击某个url
存储型出现在评论区,每次留言被加载时嵌入的代码就会执行。
DOM型一般是修改本地的DOM,在本地执行,不与服务器发生交互。
由于xss是一段脚本,所以它只能盗取客户端的数据,如cookie等
常见的危害有:cookie窃取,session劫持,钓鱼攻击,蠕虫,ddos等。
htmlspecialchars()函数是有效的防止手段,可将特殊字符统一转化成转义符。 例如
<?php
$str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);
?>
返回
<!DOCTYPE html>
<html>
<body>
This is some <b>bold</b> text.
</body>
</html>
显示效果
This is some bold text.