XSS
(跨站脚本攻击)
定义
是代码注入的一种,允许恶意用户将代码注入到网页中,其他用户在观看网页时就会收到影响,这类攻击通常包含了HTML
及用户端脚本语言
分类
存储型
攻击代码会被永久存储反射型
攻击代码被服务器原样返回DOM-BASE
型
攻击代码不经过服务器,直接在本地触发
常用的XSS
攻击手段和目的有:
盗用cookie,获取敏感信息。
利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
在访问量极大的一些页面上的
XSS
可以攻击一些小型网站,实现DDoS攻击的效果。
防御方法
严格校验用户输入
如校验id类型,正则匹配等-
对于无法校验的输入,在输出之前进行转义
XSS
转义方案总结:HTML
编码javascript
编码URL
编码
-
CSP
很多人把它喻为XSS攻击的终结者,因为这种策略不再像传统只靠各种正则和特征匹配来识别跨站攻击Payload,而是直接从协议层把一些存在安全隐患的用法默认给干掉了,把同源同域更发挥到了极致
(CSP) 是什么?为什么它能抵御 XSS 攻击?
CSRF
(跨站请求伪造)
CSRF
可以做什么?
你这可以这么理解CSRF
攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF
能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全。
CSRF
攻击步骤
访问信任站点
验证登陆,返回cookie
在未退出信任站点的情况下访问恶意站点
恶意网站返回的数据要求访问信任站点的数据
带着登陆态向信任站点发送一个写请求
CSRF
防御
正确使用GET,POST和Cookie
在客户端页面增加伪随机数
在
HTTP
请求中校验Referer字段
HTTP
劫持
什么是HTTP
劫持呢,大多数情况是运营商HTTP劫持,当我们使用HTTP
请求请求一个网站页面的时候,网络运营商会在正常的数据流中插入精心设计的网络数据报文,让客户端(通常是浏览器)展示“错误”的数据,通常是一些弹窗,宣传性广告或者直接显示某网站的内容,大家应该都有遇到过。HTTP
劫持解决方案 :https
DNS
劫持
DNS
劫持就是通过劫持了DNS
服务器,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对该域名的访问由原IP地址转入到修改后的指定IP,其结果就是对特定的网址不能访问或访问的是假网址,从而实现窃取资料或者破坏原有正常服务的目的。
DNS
劫持就更过分了,简单说就是我们请求的是 http://www.a.com/index.html ,直接被重定向了 http://www.b.com/index.html
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。