易截截图软件、单文件、免安装、纯绿色、仅160KB

JavaScript的 Cross Site 脚本注入风险

    今天有人来公司推销网站安全扫描软件,演示了对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 脚本中的后引号的。
你猜结果会怎么样?页面直接被跳转到 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页面刷新与弹出窗口问题解决方法


1.无提示刷新网页
大家有没有发现,有些网页,刷新的时候,会弹出一个提示窗口,点“确定”才会刷新。
而有的页面不会提示,不弹出提示窗口,直接就刷新了.
如果页面没有form,则不会弹出提示窗口。如果页面有form表单
a)<
form method="post" ...> 会弹出提示窗口
b)< form method="get" ...& ......

javascript 之 prototype

function MyObject1(formalParameter){
    alert("MyObject1");    
    this.testNumber = formalParameter;
    //1
    this.toString= function(){
       alert("MyObject1:"+this.testNumber);
   &nbs ......

Javascript中最常用的61个经典技巧

 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="re ......

JavaScript核心参考教程 内置对象

JavaScript 是根据 "ECMAScript"标准制定的网页脚本语言。这个标准由 ECMA 组织发展和维护。ECMA-262
是正式的 JavaScript 标准。这个标准基于 JavaScript (Netscape) 和 JScript
(Microsoft)。Netscape (Navigator 2.0) 的 Brendan Eich 发明了这门语言,从 1996
年开始,已经出现在所有的 Netscape 和 Micro ......

Javascript在IE和FireFox中的不同表现

1.document.formName.item("itemName") 问题
说明:IE下,可以使用document.formName.item("itemName")或
document.formName.elements["elementName"];Firefox下,只能使用
document.formName.elements["elementName"].
解决方法:统一使用document.formName.elements["elem ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号