OWASP TOP 10 漏洞讲解
1 、 s q l 注入 1、sql注入 1、sql注入
原理:
SQL 注入就是指 web
应用程序对用户输入的数据合法性没有过滤或者是判断,前端传入的参数是攻击者可以控制,并且参数带入数据库的查询,攻击者可以通过构造恶意的 sql
语句来实现对数据库的任意操作。
分类:
1、报错注入
2、bool 型注入
3、延时注入
4、宽字节注入
防御:
1.使用预编译语句,绑定变量
2.使用存储过程
3.使用安全函数
4.检查数据类型
2 、失效的身份认证和会话管理 2、失效的身份认证和会话管理 2、失效的身份认证和会话管理
原理:
在开发web应用程序时,开发人员往往只关注Web应用程序所需的功能,所以常常会建立自定义的认证和会话方案。但是要正确的实现这些方案却是很难的。结果就在退出、密码管理、超时、密码找回、帐户更新等方面存在漏洞。
防御:
1、区分公共区域和受限区域。
2、对最终用户帐户使用帐户锁定策略。
3、支持密码有效期。
4、能够禁用帐户。
5、不要存储用户密码。
6、要求使用强密码。
7、不要在网络上以纯文本形式发送密码。
8、保护身份验证 Cookie。
9、使用 SSL 保护会话身份验证 Cookie。
10、对身份验证 cookie 的内容进行加密。
11、限制会话寿命。
12、避免未经授权访问会话状态。
3 、跨站脚本攻击( X S S ) 3、跨站脚本攻击(XSS) 3、跨站脚本攻击(XSS)
XSS是跨站脚本攻击,原理是攻击者向有XSS漏洞的网站中输入恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。
分类:反射型(非持久型)XSS、存储型(持久型)XSS、DOM型XSS.
区别:
DOM XSS和反射型XSS、存储型XSS的差别在于DOM XSS的代码并不需要服务器参与,触发XSS靠的是浏览器端的DOM解析,完全是客户端的事情。
预防:
1.使用XSS Filter,即跨站脚本过滤器,用于分析用户提交的输入,并过滤可能存在的脚本攻击及恶意的THML或简单的HTML格式错误等。
2.输入过滤
输入是否仅仅包含合法的字符;
输入字符串是否超过最大长度限制;
输入如果为数字,数字是否在指定的范围;
输入是否符合特殊的格式要求,如E-mail地址、IP地址等
3.输出编码
<(小于号) 转成 <
> (大于号)转成 >
& (和号)转成 &
" (双引号)转成 "
' (单引号)转成 '
4.黑名单和白名单
5.内容安全策略(csp):CSP用于限制浏览器查看您的页面,以便它只能使用从受信任来源下载的资源。
4 、直接引用不安全的对象