检查点1
(1)验证输入(2)数据类型(字符串,整型,实数等)(3)允许的字符集(4)最小和最大的长度(5)是否允许空输入(6)参数是否是必须的(7)重复是否允许(8)数值范围(9)特定的值(枚举型)(10)特定的模式(正则表达式)
检查点2
有问题的访问控制:主要用于需要验证用户身份以及权限的页面,复制该页面的url地址,关闭该页面以后,查看是否可以直接进入该复制好的地址;
例:从一个页面链到另一个页面的间隙可以看到URL地址,直接输入该地址,可以看到自己没有权限的页面信息
检查点3
各级访问权限是否合理:
(1)用户生命周期是否有限制;
(2)低级别的用户是否可以操作高级别用户命令;
(3)用户是否自动超时退出,超时设置是否合理,用户数据是否会丢失。
检查点4
(1)跨站脚本(XSS):攻击者使用跨站脚本来发送恶意代码给没有发觉的用户,窃取他机器上的任意资料;
(2)HTML标签:<>,</>;
(3)转义字符:&(&);<<(<);>gt(>);  (空格);
(4)是否允许空输入;
(5)特殊字符:''<>/
例:对Grid、Label、Treeview类的输入框未作验证,输入的内容会按照html语法解析出来
检查点5
(1)注入式漏洞:用户登录处、不用登录可以查看到的数据库中的数据列表尤为重要。
例:一个验证用户登陆的页面,如果使用的sql语句为: Select * from table A where username = ' ' + username + '' and password.
(2)Sql输入(参考我前面写的sql注入)
检查点6
表单提交安全测试:
适用范围:有表单提交的地方、有HTTP请求的地方(包括GET、POST请求)
1)表单中注入XSS脚本
2)表单中注入SQL脚本
检查点7
没有加密关键数据:
例:View-source:http地址可以查看源代码, 在页面输入密码,页面显示的是*****,右键,查看源文件是否可以看见刚才输入的密码;
检查点8
不恰当的异常处理:程序在抛出异常的时候给出了比较详细的内部错误信息,暴露了不应该显示的执行细节,网站存在潜在漏洞;
检查点9
(1)URL安全测试1
适用范围:URL中含有参数,也就是通过GET方式传递的HTTP请求;
GET方式:方式在客户端通过URL提交数据,数据在URL中可以看到;
POST方式:数据放置在HTMLHEADER内提交,数据在URL中看不到;
GET只能传输比较少的数据,安全性较低,POST传输数据较多,安全性也比GET高;
(2)URL安全测试2
URL参数检查:
a. 对URL中参数信息检查是否正确
如:URL中的订单号、金额允许显示出来的话,需要验证其是否正确;
b. 对于一些重要的参数信息,不应该在URL中显示出来
如:用户登录时登录名、密码是否被显示出来了;
(3)URL安全测试3
URL参数值篡改:修改URL中的数据,看程序是否能识别:
如:对于以下URL,修改其中planId,看是程序是否可以识别:
http://pay.daily.taobao.net/mysub/plan/subplan/confirmSubPlanInfo.htm?planId=xxx