[发明专利]一种对抗XSS攻击的方法在审
申请号: | 201711428031.7 | 申请日: | 2017-12-26 |
公开(公告)号: | CN108171051A | 公开(公告)日: | 2018-06-15 |
发明(设计)人: | 张伟荣;季统凯 | 申请(专利权)人: | 国云科技股份有限公司 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F8/20 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙) 11350 | 代理人: | 汤东凤 |
地址: | 523808 广东省东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 按钮 跨站脚本攻击 脚本创建 网站安全 对抗 服务端 合法性 同源 网页 检测 | ||
本发明涉及网站安全技术领域,具体涉及一种对抗XSS攻击的方法。本发明所述的方法是通过脚本创建一个提交按钮放在不同源的iframe中,通过iframe中的提交按钮提交父页面的表单,服务端通过检测referer是否由iframe发起判断提交合法性。本发明解决对外开放的网页表单提交功能容易受到跨站脚本攻击(XSS)的问题。
技术领域
本发明涉及网站安全技术领域,具体涉及一种对抗XSS攻击的方法。
背景技术
目前网站的表单很多都是通过点击提交按钮发起的,例如提交评论、发布留言。如果留言系统有XSS漏洞,用户中招后,除了基本攻击外,XSS还会自动填入留言内容并模拟点击提交按钮发布带有恶意代码的留言。其他用户看到中招后又传播给其他用户,从而形成蠕虫扩散。
发明内容
本发明解决的技术问题在于提供一种对抗XSS攻击的方法,解决原来对外开放的网页表单提交功能容易受到跨站脚本攻击(XSS)的问题。
本发明解决上述技术问题的技术方案是:
所述的方法是通过脚本创建一个提交按钮放在不同源的iframe中,通过iframe中的提交按钮提交父页面的表单,服务端通过检测referer是否由iframe发起判断提交合法性。
所述的方法具体包含以下几个步骤:
步骤一、父页面初始化,通过脚本创建一个提交按钮,放在不同源的iframe中;
步骤二、用户点击iframe的提交按钮,设置变量clicked为true,同时通知父页面;
步骤三、父页面收到消息后,将表单数据发送到iframe并调用iframe页面的提交方法;
步骤四、iframe页面的提交方法检验变量clicked,如果为true,则将父页面发过来的数据通过Ajax发送;
步骤五、服务端接收数据,检验referer,如果为iframe的地址,则检验通过,否则提示数据来源错误;
步骤六、iframe页面的提交方法收到服务端返回数据后,将结果发送回父页面;
步骤七、父页面处理收到的返回数据,如果成功则提示提交成功,如果失败则提示详细错误。
本发明的有益效果:在页面中通过脚本创建提交按钮,放在不同源的iframe中,这样就和XSS所在的环境隔离了,XSS无法访问到这个提交按钮也就无法模拟点击提交恶意代码。而且通过iframe提交父页面的表单,服务端通过referer即可检测请求是否由iframe发起的,这样就算XSS破解上一道防线,通过直接调用http接口提交数据,XSS也无法伪造referer。采用这种方法可以实现对抗XSS攻击的目的。本发明有效解决了对外开放的网页表单提交功能容易受到跨站脚本攻击(XSS)的问题。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的方法流程图。
具体实施方式
如图1所示,本发明采用如下步骤:
步骤一、父页面初始化,通过脚本创建一个提交按钮,放在不同源的iframe中,父页面url为“http://www.test.com/form.html”,iframe的url为“http://cross.test.com/proxy.html”;
步骤二、用户点击iframe的提交按钮,设置变量clicked为true,同时通知父页面;
步骤三、父页面收到消息后,将表单数据发送到iframe并调用iframe页面的提交方法;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国云科技股份有限公司,未经国云科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711428031.7/2.html,转载请声明来源钻瓜专利网。