JavaScript 的 Cross Site 脚本注入风险
2010-01-20 22:17
423 查看
今天有人来公司推销网站安全扫描软件,演示了对JS的跨域脚本注入风险的扫描,以前没意识到,今天有所了解。如果您的程序页面有以下情况,那么JS脚本注入的风险就很大:
1)页面打开时,URL 有某个参数,例如 XXPage.aspx?XXParam=XXValue
2)aspx页面里有如下代码:
<script>
var p = "<%=Request["XXParam"];%>";
</script>
注入风险如下:
1)黑客假冒网站身份发送邮件给用户,用户打开网页链接,链接虽然是指向 XXPage.aspx,但 XXParam 却被做了改造,例如:XXParam 被设置为 "; document.location.href = 'http://www.xxx.com/XXFakePage.aspx';//"。注意,前面的双引号是用来屏蔽 var p = " 的,后面紧接着就是一个JS页面跳转语句;最后面的 //" 是用来屏蔽 JS 脚本中的后引号的,最终形式如下:
<script>
var p = ""; document.location.href = 'http://www.xxx.com/XXFakePage.aspx';//"";
</script>
明白了吗?
你猜结果会怎么样?页面直接被跳转到 http://www.xxx.com/XXFakePage.aspx,如果这个页面是假冒页面,并且这个页面是嵌入在 Frameset 里的,那就不会显示在浏览器地址栏里,用户就会在毫无觉察的情况下,把用户名、密码、银行卡账号密码等机密信息提交到假冒服务器上!!
对策:
方法一:不要用 <%=Request["XXParam"];%> 来解析参数值,而直接用 JS 脚本从URL获取参数值
方法二:把参数值先放在 HIDDEN 控件里,例如: <input type=hidden id=xxhid value="<%=Server.HtmlEncode(Request["XXParam"]);%>"> 里,然后在 JS 里改为 var p = document.all.xxhid.value;
应该还有其他方法,以上方法只是示意,没有去编译,仅供参考。
1)页面打开时,URL 有某个参数,例如 XXPage.aspx?XXParam=XXValue
2)aspx页面里有如下代码:
<script>
var p = "<%=Request["XXParam"];%>";
</script>
注入风险如下:
1)黑客假冒网站身份发送邮件给用户,用户打开网页链接,链接虽然是指向 XXPage.aspx,但 XXParam 却被做了改造,例如:XXParam 被设置为 "; document.location.href = 'http://www.xxx.com/XXFakePage.aspx';//"。注意,前面的双引号是用来屏蔽 var p = " 的,后面紧接着就是一个JS页面跳转语句;最后面的 //" 是用来屏蔽 JS 脚本中的后引号的,最终形式如下:
<script>
var p = ""; document.location.href = 'http://www.xxx.com/XXFakePage.aspx';//"";
</script>
明白了吗?
你猜结果会怎么样?页面直接被跳转到 http://www.xxx.com/XXFakePage.aspx,如果这个页面是假冒页面,并且这个页面是嵌入在 Frameset 里的,那就不会显示在浏览器地址栏里,用户就会在毫无觉察的情况下,把用户名、密码、银行卡账号密码等机密信息提交到假冒服务器上!!
对策:
方法一:不要用 <%=Request["XXParam"];%> 来解析参数值,而直接用 JS 脚本从URL获取参数值
方法二:把参数值先放在 HIDDEN 控件里,例如: <input type=hidden id=xxhid value="<%=Server.HtmlEncode(Request["XXParam"]);%>"> 里,然后在 JS 里改为 var p = document.all.xxhid.value;
应该还有其他方法,以上方法只是示意,没有去编译,仅供参考。
相关文章推荐
- JavaScript And Ajax(呈现脚本块、脚本注入攻击)
- javascript处理HTML的Encode(转码)和Decode(解码)总结,避免js脚本注入问题
- Server 端注入并指定 Browser 执行 JavaScript 脚本
- JavaScript And Ajax(呈现脚本块、脚本注入攻击)
- ActionScript3注入JavaScript脚本
- 浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
- WPF中WebBrowser注入javascript脚本
- 浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
- contentscript 注入网页的脚本,javascript去除广告
- 浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
- JavaScript常用脚本汇总(一)
- ASP.NET Core中的OWASP Top 10 十大风险-跨站点脚本攻击 (XSS)
- JavaScript For JCFXBL 服务器端脚本I/O扩展
- PHP+MYSQL如何防止脚本注入攻击
- 调试Atlas客户端JavaScript脚本
- 使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
- 第一百一十八节,JavaScript,动态加载脚本和样式
- LoadRunner中插入javascript脚本
- JavaScript脚本语言介绍并实现第一个Hello World程序
- 梅花雨做的一个日历 Javascript 页面脚本控件