技术贴:跨站脚本攻击方式及其预防

注册失败 2010-09-25 10:33:02
跨站脚本攻击,即XSS(Cross-Site Scripting)攻击.
漏洞的主要原理就是把用户的输入不加处理的输出到了页面
攻击有几种情况:1.跨站脚本存到了服务器,这样会影响所有访问者
2.跨站脚本通过网页展示给特定用户

以Twitter最新受影响的漏洞为例:(实际上twitter上的蠕虫比这复杂)
Twitter允许用户输入网址,然后展示成链接的格式,href里的内容就是用户输入
<a href='http://www.xxx.com' style='xxxx' />
某用户输入的链接地址为:http://www.xxx.com'onmouseover='alter("1")'
由于twitter没有处理用户输入信息,直接展示了出来,则展示出来的链接地址就变成了
<a href='http://www.xxx.com'onmouseover='alter("1")' style='xxxx' />
当然,这个JS也可以取到用户的用户名和cookie,然后发送给另外的网站

防范原则:
1.<script>…不要把用户数据输出到这里 …</script>
2.<!-- … 不要把用户数据输出到这里 … - ->
3.<div … 不要把用户数据输出到这里 …=test />
4.<… 不要把用户数据输出到这里 … href=“/test” />
5.<div attr=…不要把用户数据输出到这里 …>content</div>
6.<div attr=‘..不要把用户数据输出到这里 ..’>content</div>
7.<div attr=“..不要把用户数据输出到这里..”>content</div>
8.<script>alert(‘..输出到这里的用户数据必须编码..’)</script>
9.<script>x=‘..输出到这里的用户数据必须编码..’</script>
10.<div onmouseover=“x=‘..输出到这里的用户数据必须编码..’ “</div>
11.<a href=“http://site.com?test=...输出到这里的用户数据必须编码..”>link</a>
12.在machine.config或者web.config里打开asp.net的request validation选项<pages buffer=“true” validateRequest=“true”/>
13.可使用的开发包:AntiXSS

以上文字纯属抛砖引玉,对XSS的介绍也很浅显,大家多提意见
...全文
275 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwfgu00ing 2010-09-25
  • 打赏
  • 举报
回复
不错,值得研究
yuxh81 2010-09-25
  • 打赏
  • 举报
回复
很好,谢谢!

期待楼主继续。。。
Wilson_Zhong 2010-09-25
  • 打赏
  • 举报
回复
不错不错,收藏先
dalmeeme 2010-09-25
  • 打赏
  • 举报
回复
顶,多谢。
porschev 2010-09-25
  • 打赏
  • 举报
回复
看看。。。先谢了。。
majic2008 2010-09-25
  • 打赏
  • 举报
回复

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧