基于OWASP Top 10与ESAPI

读书笔记

开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。

基础简介

HTTP方法

方法 安全性 幂等性
GET
HEAD
OPTIONS
DELETE
PUT
POST

1. Session Cookie

只是在用户使用站点期间存在,一个web浏览器会在退出时删除Session Cookie。当创建没有Expires的Cookie时,Cookie就是Session Cookie。

2. Persistent Cookie

比普通用户的会话更长久。如果一个Persistent Cookie设置Max-Age为一年,那么在一年内,每次用户访问服务器时,Cookie都会发送给服务器,所以它可以用来记录用户访问网站的至关重要的信息

3. Secure Cookie

是指Cookie有secure属性,只能通过HTTPS才能使用,确保Cookie在传输过程中总是被加密。这可以使Cookie尽可能少的因为窃听而泄露

4. HttpOnly Cookie

只有在传输HTTPS/HTTP请求时才会被使用,这样可以限制被其他的非HTTP API访问

5. Third-party Cookie

First-party Cookie 是指Cookie中设置的域名是浏览器地址栏里的域名或者其子域名

Third-party Cookie是指Cookie中设置的域名和浏览器地址栏里的域名不一样。

6. Super-Cookie

是指设置域名为公共后缀的Cookie,如.com、.org等。

7. Zombie Cookie

在用户删除Cookie之后自动创建的Cookie。

HTTP安全

1.敏感信息

不要通过HTTP泄露任何资源。提交敏感信息的时候建议使用POST方法,而不是GET,因为请求会被记录到日志里。

2.基于文件路径的攻击

应该只允许返回被允许访问的文档。如果HTTP服务器直接将URI翻译成文件系统的调用,有可能导致预料之外的文件返回给客户端。

3.DNS欺骗

HTTP的客户端严重依赖于域名服务,因此如果故意的将DNS名和不相关的IP关联起来,可以发动DNS欺骗攻击。

4.Location头欺骗

如果一个服务器支持多个组织,而且这些组织之间并不相互信任,那么服务器必须检查响应消息Location和Content-Location头,以防一个组织尝试去访问一些他们没有被授权的资源。

5.代理和缓存

存在中间人攻击的机会。

TOP10

2013 Top10 2017 Top10
A1-注入 A1-注入
A2-失效的身份认证和会话管理 A2-失效的身份认证和会话管理
A3-跨站脚本(XSS) A3-跨站脚本(XSS)
A4-不安全的直接对象引用 A4-失效的访问控制
A5-安全配置错误 A5-安全配置错误
A6-敏感信息泄露 A6-敏感信息泄露
A7-功能级访问控制缺失 A7-攻击检测与防范不足(-new-)
A8-跨站请求伪造(CSRF) A8-跨站请求伪造(CSRF)
A9-使用含有已知漏洞的组件 A9-使用含有已知漏洞的组件
A10-来验证的重定向和转发 A10-未受保护的APls(-new-)