易截截图软件、单文件、免安装、纯绿色、仅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 之 Closure

http://javascript.crockford.com/private.html
function a() {
var i = 0;
function b() {
alert(++i);
}
return b;
}
var c = a();
c();
 
当在函数b中访问一个变量的时候,搜索顺序是:
先搜索自身的活动对象,如果存在则返回,如果不存在将继续搜索函数a的活动对象,依 ......

javascript的笔试题目(共17道)附参考答案

上次部门招聘需要web前台技术笔试题目,我在网上搜索一下,还真找不到什么。于是自己编了几道。  
  招聘结束了,题目估计没用了。这里公布出来,对js感兴趣的新手可以做做看,或许有帮助哦。  
  答案就不公布了,自己一试就知道了。  
   
  一、单选题  
  ......

javascript如何设置获取GridView模板列的值


如果使用html控件还好一些,服务器控件就比较郁闷一些,因为GridView生成之后是多行的,所以这个文本框也会有很多个,另一方面asp.net会自动重新命名控件,所以想通过ID获取已经不可能了,很不幸的是连name属性都被自动生成了,哪怕你添加了name属性,也无法覆盖生成的name,而是会出来两个name属性
那么就想别的办法, ......

javascript中createTextRange用法

<script language="javascript">
function test()
{
var rng=document.body.createTextRange();
alert(rng.text)
}
function test1()
{
var rng=document.body.createTextRange();
alert(rng.htmlText)
}
</script>
<input type="button" onclick="test()"& ......

javascript 过滤 textbox

<asp:TextBox ID="TextBox1" runat="server" onkeydown="return NotAllowSpace(this);"/></asp:TextBox>
<mce:script type="text/javascript" language="javascript"><!--
function NotAllowSpace(e)
{
var keyVal =(window.event) ? event.keyCode : e.keyCode; ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号