-
XSS
- XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的,形成了一次有效XSS攻击。
- XSS一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实施,比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼
- 它可以分为两类:反射型和持久型
- 反射型XSS攻击场景:用户点击嵌入恶意脚本的链接,攻击者可以获取用户的cookie信息或密码等重要信息,进行恶性操作
- 解决方案:开启cookie的HttpOnly属性,禁止客户端JavaScript脚本读取cookie信息
- 持久型XSS攻击场景:攻击者提交含有恶意脚本的请求(通常使用script标签),此脚本被保存在数据库中。用户再次浏览页面,包含恶意脚本的页面会自动执行脚本,从而达到攻击效果。这种攻击常见于论坛,博客等应用中
- 解决方案:前端提交请求时对一些特殊字符进行转义,或者是后台存储数据时进行特殊字符转义
CSRF
CSRF,Cross-site request forgery,跨站请求伪造。这种方式是恶意网站利用浏览器的cookie或服务器的session策略,盗取用户信息,模拟用户向第三方网站发送恶意请求
http请求是无状态的,也就是说每次http请求都是独立的无关之前的操作的,但是每次http请求都会将本域下的所有cookie作为http请求头的一部分发送给服务端,所以服务端就根据请求中的cookie存放的sessionid去session对象中找到该用户数据
解决方案:提交请求中携带Token,并且每次请求的Token值都是合法的随机数
CSRF 和 XSS 的区别
- CSRF是跨站请求伪造; XSS是跨域脚本攻击。
- CSRF需要用户先登录网站A,获取cookie; XSS不需要登录。
- CSRF是利用网站A本身的漏洞,去请求网站A的api; XSS是向网站A注入JS代码,然后执行JS里的代码,篡改网站A的内容。(XSS利用的是站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的网站。你可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求。)
点击劫持
- 点击劫持(ClickJacking)是一种视觉上的欺骗手段。大概有两种方式,一是攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在该页面上进行操作,此时用户将在不知情的情况下点击透明的iframe页面;二是攻击者使用一张图片覆盖在网页,遮挡网页原有位置的含义
- 解决方案: (X-Frame-Options)这个可以说是为了解决ClickJacking而生的
是一个HTTP响应头,在现代的浏览器中有一个较好的支持。它就是为了防御用iframe嵌套的点击劫持攻击,该响应头有三个值可选,分别是- DENY 表示页面不允许通过iframe的方式展示,(浏览器会拒绝当前页面加载的任何iframe)
- SAMEORIGIN 表示页面可以在相同域名下通过iframe的方式展示,(frame页面的地址只能为同源域名下的页面)
- ALLOW-FROM 表示页面可以在指定来源的iframe中展示
DDOS攻击
- DDOS:分布式拒绝服务攻击(Distributed Denial of Service),简单说就是发送大量请求是使服务器瘫痪。DDos攻击是在DOS攻击基础上的,可以通俗理解,dos是单挑,而ddos是群殴,因为现代技术的发展,dos攻击的杀伤力降低,所以出现了DDOS,攻击者借助公共网络,将大数量的计算机设备联合起来,向一个或多个目标进行攻击。
- 最直接的方法增加带宽。但是攻击者用各地的电脑进行攻击,他的带宽不会耗费很多钱,但对于服务器来说,带宽非常昂贵。
- 云服务提供商有自己的一套完整DDoS解决方案,并且能提供丰富的带宽资源
SQL注入
- 攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来非法获取数据库信息以及对数据库进行操作
- 解决方案 :
- 对用户的输入进行校验
- 对主要信息加密
DNS挟持
- 页面输入url之后,获取原域名的DNS解析权,修改掉原先的ip地址,将DNS指向攻击者的ip地址。(即输入https://www.baidu.com/时,出来的是别的页面)…后果:用户被诱骗到冒牌网站进行登录等操作导致泄露隐私数据
- 解决方案:手动指定DNS服务器地址
钓鱼攻击
- 攻击者会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的目的
- 解决方案: 对所有的重定向操作进行审核,以避免重定向到一个危险的地方;重定向token,在合法的url上加上token,重定向时进行验证
控制台注入代码
- 不法分子通过各种提示诱骗用户在控制台做一些操作,从而获取用户信息。
- 我们最好在控制台对用户进行友好的提示,不要轻易相信这种提示灯