记录一下
1、跨站脚本攻击(XSS攻击)
攻击者将恶意脚本插入到网页中,网页会将这些恶意脚本当正常脚本来执行。可以简单的理解为一种javascript代码注入
所有可输入的地方没有处理输入的数据,就可能存在xxs漏洞。
解决:
不信赖用户输入,对特殊字符如”<”,”>”转义,就可以从根本上防止这一问题。
充分利用 CSP(内容安全策略----白名单)
使用 HttpOnly 属性(XSS 攻击都是来盗用 Cookie 的,因此还可以通过使用 HttpOnly 属性来保护我们 Cookie 的安全)
2、跨站请求伪造(CSRF攻击)
CSRF 攻击是攻击者借助受害者的 Cookie 骗取服务器的信任,在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击服务器,从而在并未授权的情况下执行在权限保护之下的操作。
网站中的一些提交行为,被黑客利用,在你访问黑客的网站的时候进行操作,会被操作到其他网站上。也就是所谓的钓鱼。
比如我们在登陆某个论坛,但这个网站是个钓鱼网站,我们利用邮箱或者qq登陆后,它就可以拿到我们的登陆状态,session和cookie信息。
然后利用这些信息去模拟一个另外网站的请求,比如转账的请求。
解决:
关键请求使用验证码或者token机制
- 攻击一般发起在第三方网站,而不是被攻击的网站。
- 攻击是利用受害者在被攻击网站的登录凭证,冒充受害者提交操作,仅仅是“冒用”,而不是直接窃取数据。
- 攻击者预测出被攻击的网站接口的所有参数,成功伪造请求。
- 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
- 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
- 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
- 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
- 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。
3、SQL注入攻击
通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
解决:
前端页面要校验用户的输入数据,后端不要使用动态SQL语句,不要直接存放机密数据。
(严格说,sql注入属于后端的安全问题)