Mar
24

Web开发中请勿过分依赖Javascript

Javascript是客户端语言,javascript为web应用带来了很多优势,因此很多web程序开发者非常依赖javascript,从简单的判断到ajax,javascript无所不在,然而过分依赖javascript,您的web程序可能出现极大的安全隐患。下面从实际情况讲讲过分依赖javascript所带来的问题:

1、upload时的javascript判断,这个是为大家所熟知的漏洞,早年的asp程序基本都有这个问题,即在上传文件的时候,只是客户端判断文件,而真正处理上传的服务器脚本没有判断,于是大家可以自己写个form上传可执行文件;与此类似的是注册的时候判断注册的信息是否符合要求,单靠javascript是不行的;

2、ajax里的注入,ajax非常强大,在web2.0里用的很广泛,但太多的ajax程序的服务端文件存在注入,虽然不是一眼就能看到的注入点,但仔细看看源码,可以很容易的找到提交点(注入点);

3、下面谈的是本文产生的重点,不仔细看看,程序员都会觉得这程序没问题!

先看一段asp代码:

<!--#include file="../Inc/Conn.asp"-->
13 Comments
Jul
25

javascript判断checkbox多选框数目

今天要用到一个js程序,要实现以下两点功能(checkbox是asp生成的,并非静态的html):
1.判断checkbox的数目,当超过设置的数目时显示只能选这么多,即时控制,而不是提交时判断;
2.提交form的时候,判断是否选择了要求的数目,否则不予提交。

写了好久,终于试成功了,因为asp生成的input,name不能相同,不然以后不好控制,所以document.getElementsByName不好取值,于是换思路写。

以下是用静态页面测试的代码(第二个函数也可以使用参数或者name的值):

<script LANGUAGE="JavaScript">function doCheck(ctrl,checkboxname,MaxSelect,MaxCheckbox) {
   var NumChecked = 0;
   var thisCtrl;
   var i;
   i = 1;
   while ((i <= MaxCheckbox) && (NumChecked </script>
6 Comments
Apr
25

从一个另类的hook解密方法学习javascript hijacking

晚上习惯性的去126邮箱看Ph4nt0m的讨论贴,突然看到一位同学发帖求一段javascript的加密代码的解密版本,于是另外一个大牛回答他并给出了解密方法:

我的解密方法,hook:
document.write = window.alert;
eval = window.alert;
把这两行加在加密代码前面,然后执行,弹出message后ctrl+c。

我回来试了下,解密代码确实被alert出来了,但我没明白这两句话的意思(事后看看,一目了然的两句话却被我折腾N久),我去bingo群咨询,他们说这代码太垃圾了,强行赋值原有的属性,简直太无聊了,可是却没有指出我理解错误的所在,不过得到了一段代码点醒了我:

SB = document.write;
SB('hello');

代码只是解释了赋值的意思,却把本来我要得到的东西扯远了。于是我继续百度,终于我发现了一篇也是来自于

1 Comments