如何修复XSS跨站脚本漏洞?

举报
网站安全防护 发表于 2021/06/15 09:47:48 2021/06/15
【摘要】 跨站脚本攻击的英文全称CporSSSateScript,为了更好地区分样式表,缩写为XSS。原因是网站将客户键入的内容输出到页面,在此过程中可能会有恶意代码被浏览器执行。跨站脚本攻击是指恶意攻击者将恶意html代码插进网页页面,当客户浏览网页时,嵌入网页页面的html代码将被执行,从而达到恶意客户的特殊目的。已知跨站脚本攻击漏洞有三种:1)存储;2)反射;3)基于DOM。测试方法:1.GET...

跨站脚本攻击的英文全称CporSSSateScript,为了更好地区分样式表,缩写为XSS。原因是网站将客户键入的内容输出到页面,在此过程中可能会有恶意代码被浏览器执行。跨站脚本攻击是指恶意攻击者将恶意html代码插进网页页面,当客户浏览网页时,嵌入网页页面的html代码将被执行,从而达到恶意客户的特殊目的。已知跨站脚本攻击漏洞有三种:1)存储;2)反射;3)基于DOM。

测试方法:1.GET跨站脚本:键入参数后,逐个添加以下句子。以第一条为例,键入http://www.exmaple.com/page.xx?name=。文本输入框:需要测试页面上所有可以提交参数的地方。具体跨站脚本的测试句子可以根据实际情况自行结构,触发事件等进行切换。这里只列出一些最常见的结构句子。

例子:登录窗口用户名中有反射XSS注入。点击图片登录,成功弹出内容。风险分析:

攻击者可以利用这个漏洞构建钓鱼链接,欺骗受害者访问并填写用户名和密码,从而窃取客户的认证凭证。

修复办法:

1.整体修复方法:验证所有键入数据,有效检测攻击;适当编码所有输出数据,防止任何成功注入的脚本在浏览器端运行。具体如下:2.键入验证:在某些数据被接受为可显示或存储之前,使用标准键入验证机制验证所有键入数据的长度、类型、语法和业务规则。3.输出代码:在输出数据之前,确保客户提交的数据已经正确编码,建议对所有字符进行代码,而不仅个子集。4.明确指定输出的编码方法:不允许攻击者为客户选择编码方法(如ISO8859-1或UTF8)。5.注意黑名单验证方法的局限性:只找或替换一些字符(如<、>或类似script的关键词),很容易被XSS变种攻击绕过验证机制。

警惕标准化错误:在验证键入之前,必须进行解码和标准化,以满足当前应用的内部表达方式。请确认应用程序不会对同一键入进行两次解码。过滤客户端提交的数据,一般建议过滤掉特殊字符,如双引号()、尖括号(<、>),或者过滤掉客户端提交的数据中包含的特殊字符,如将双引号(转换为实体形式,<对应的实体形式为<,<对应的实体形式为>以下是需要过滤的常见字符。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。