Web应用需要安全测试的一些地方[转载]

SQL注入
拼接的SQL字符串改变了设计者原来的意图,执行了如泄露、改变数据等操作,甚至控制数据库服务器, SQL InjectionCommand Injection等攻击包括在内

跨站脚本攻击(XSS
跨站脚本(Cross-Site Scripting)是指远程WEB页面的html代码可以插入具有恶意目的的数据,当浏览器下载该页面,嵌入其中的恶意脚本将被解释执行,从而对客户端用户造成伤害。简称XSS

没有限制URL访问
系统已经对URL的访问做了限制,但这种限制却实际并没有生效。攻击者能够很容易的就伪造请求直接访问未被授权的页面

越权访问
用户对系统的某个模块或功能没有权限,通过拼接URLCookie欺骗来访问该模块或功能

泄露配置信息
服务器返回的提示或错误信息中出现服务器版本信息泄露、程序出错泄露物理路径、程序查询出错返回SQL语句、过于详细的用户验证返回信息。

不安全的加密存储
常见的问题是不安全的密钥生成和储存、不轮换密钥,和使用弱算法。使用弱的或者不带salt的哈希算法来保护密码也很普遍。外部攻击者因访问的局限性很难探测这种漏洞。他们通常必须首先破解其他东西以获得需要的访问。

传输层保护不足
在身份验证过程中没有使用SSL / TLS,因此暴露传输数据和会话ID,被攻击者截听,或使用过期或者配置不正确的证书。

登录信息提示
用户登录提示信息会给攻击者一些有用的信息,作为程序的开发人员应该做到对登录提示信息的模糊化,以防攻击者利用登录得知用户是否存在

重复提交请求

程序员在代码中没有对重复提交请求做限制,这样就会出现订单被多次下单,帖子被重复发布。恶意攻击者可能利用此漏洞对网站进行批量灌水,致使网站瘫痪

  1. 网页脚本错误
    访问者所使用的浏览器不能完全支持页面里的脚本,形成“脚本错误”,也就是网站中的脚本没有被成功执行。遇到“脚本错误”时一般会弹出一个非常难看的脚本运行错误警告窗口

附:在web应用程序中是什么导致安全性问题呢?
一般有以下几个原因:

  1. 复杂应用系统代码量大、开发人员多、难免出现疏忽
  2. 系统屡次升级、人员频繁变更,导致代码不一致
  3. 历史遗留系统、试运行系统等多个Web系统共同运行于同一台服务器上
  4. 开发人员未经过安全编码培训或者公司根本就没有统一的安全编码规范
  5. 测试人员经验不足或者没经过专业的安全评估测试就发布上线
  6. 没有对用户的输入进行验证:
    • 永远不要信任用户的输入,要对用户的输入进行校验
    • 数字型的输入必须是合法的数字
    • 字符型的输入中对 编码符号要进行特殊处理
    • 验证所有的输入点,包括Get,Post,Cookie以及其他HTTP头

你可能感兴趣的:(Web应用需要安全测试的一些地方[转载])