作为一个技术人员,确实真的有必要花心思去关注安全。工作大家给我的反馈是关注Bug质量,关注性能,确确实实忽略的这一块
要加油,要加油,要加油(此文用于已了解作为复习而用)
什么是XSS攻击(跨站脚本攻击)?
- XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。
- 这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。
现状:跨站脚本攻击(XSS),是目前最普遍的Web应用安全漏洞。
补充:在一开始,这种攻击的案例是跨域的,所以叫做“跨站脚本”。但是发展到今天,前端应用的复杂化,是否跨域已经不再重要。但是由于历史原因,xss这个名字一直保留下来
XSS 分类
根据攻击的来源,XSS 攻击可分为存储型、反射型和 DOM 型三种。DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。
DOM 型 XSS 常见攻击步骤:
- 攻击者构造出特殊的 URL,其中包含恶意代码。
- 用户打开带有恶意代码的 URL。
- 用户浏览器接收到响应后解析执行,前端 JavaScript 取出 URL 中的恶意代码并执行。
- 恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户的行为,调用目标网站接口执行攻击者指定的操作。
常见攻击场景?
1) 取链接中的参数直接显示在页面中,此时容易通过参数注入恶意代码
2) 跳转链接<a href="javascript:alert('XSS')" >12</a>易注入恶意代码
开发者怎样阻止一部分攻击?
1) 目前来讲,最简单的办法防治办法,还是将前端输出数据都进行转义最为稳妥
2) 保护好捏cookie, 那么请使用cookie的HttpOnly属性,加上了这个属性的cookie字段,js是无法进行读写
什么是CSRF攻击(跨站请求伪造) ?
- 是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并运行一些操作(如发邮件,发消息)。
- 由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行
- CSRF 利用的是网站对用户网页浏览器的信任
开发者怎样阻止一部分攻击?
1) 用户所有的提交都必须带上本次页面中生成的token,如果token校验不通过,则证明此次提交并非从本站发送来,则终止提交过程