「观感度:🌟🌟🌟🌟🌟」前端
「口味:芋泥草莓」git
「烹饪时间:15min」github
本文已收录在前端食堂Github
github.com/Geekhyt,感谢Star。web
从胡子的长度和忧郁的眼神我察觉到,面前坐着的这位面试官应该有点东西,浑身上下流露着打过 CTF 的气场。我像以往同样,准备花3分钟的时间进行自我介绍。在此期间,面试官面无表情但颇有耐心的听着我bilibala。面试
我按照原定计划顺利地介绍(吹)完本身的项目经验,面试官露出了一丝淡淡的微笑看着我说:算法
❝你以为本身最擅长的是什么?数据库
❞
(我淡淡的回应道:虽然是一名前端工程师,可是我对web安全很感兴趣。)后端
Confidentiality
)
Integrity
)
Availability
)
(这三个东西必定要回答的干净利落,不假思索)浏览器
黑客在你的浏览器中插入一段恶意 JavaScript
脚本,窃取你的隐私信息、冒充你的身份进行操做。这就是 XSS 攻击(Cross-Site Scripting
,跨站脚本攻击)安全
由于浏览器没法区分脚本是被恶意注入的仍是正常的内容,它都会执行,何况 HTML
很是灵活,能够在任什么时候候对它进行修改。
(送分题)
反射型
:顾名思义,恶意 JavaScript
脚本属于用户发送给网站请求中的一部分,随后网站又将这部分返回给用户,恶意脚本在页面中被执行。通常发生在先后端一体的应用中,服务端逻辑会改变最终的网页代码。
基于DOM型
:目前更流行先后端分离的项目,反射型 XSS 无用武之地。 但这种攻击不须要通过服务器,咱们知道,网页自己的 JavaScript
也是能够改变 HTML
的,黑客正是利用这一点来实现插入恶意脚本。
存储型
:又叫持久型 XSS,顾名思义,黑客将恶意 JavaScript
脚本长期保存在服务端数据库中,用户一旦访问相关页面数据,恶意脚本就会被执行。常见于搜索、微博、社区贴吧评论等。
反射型的 XSS
的恶意脚本存在 URL
里,存储型 XSS
的恶意代码存在数据库里。
而基于DOM型的XSS
攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript
自身的安全漏洞,其余两种 XSS
都属于服务端的安全漏洞。
(面试官微微抬起头,递给我一张纸。)
(好的,给你降维解释一波)
(面试官:小伙子图画的不错)
(...太多了)
在输出时进行验证
HTML 元素内容、属性以及 URL 请求参数、CSS 值进行编码
白名单规则进行检测和过滤
CSP (Content Security Policy,内容安全策略)
,定义域名白名单
Cookie 的 HttpOnly
属性
(没想到你还爱听新闻)
CSRF 英文全称是 Cross-site request forgery
,又称为“跨站请求伪造”。
顾名思义,CSRF 攻击就是黑客引诱用户打开黑客的网站,利用用户的登录状态发起跨站请求。
降维解释:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。 利用受害者在被攻击网站已经获取的注册凭证,绕事后台的用户验证, 达到冒充用户对被攻击的网站执行某项操做的目的。
Get
请求,通常进入黑客网站后,能够经过设置
img
的
src
属性来自动发起请求
Post
请求
a
标签的
href
。
CSRF 攻击不须要将恶意代码注入用户的页面,仅仅是利用服务器的漏洞和用户的登陆状态来实施攻击。
CSRF 攻击成本也比 XSS 低,用户天天都要访问大量网页,没法确认每个网页的合法性, 从用户角度来讲,没法完全防止 CSRF 攻击。
SameSite
属性为
Strict
或
Lax
Referer、Origin
)
CSRF Token
,服务端随机生成返回给浏览器的 Token,每一次请求都会携带不一样的 CSRF Token
DES、AES(AES-128)、IDEA、国密SM一、国密SM4
RSA、ECC和国密SM2
MD五、SHA(SHA-256)、国密SM3
AES
是国际上最承认的密码学算法,只要算力没有极大的突破性进展,这种算法在可预期的将来都是安全的。
ECC
是目前国际上加密强度最高的非对称加密算法。
MD5
和 SHA
的惟一性被破解了,可是大部分场景下,不会构成安全问题。通常使用 SHA-256 加盐
便可知足大部分使用场景。
random1+对称加密套件列表+非对称加密套件列表
对称加密套件+非对称加密套件 并和 random2+证书(公钥在证书中)
一块儿返回
random1+random2 生成 pre-master 经过服务器公钥加密+浏览器确认
发送给 Server
根据约定的加密算法对 random1+random2+pre-master(解密)生成 master-secret,而后发送服务器确认
master-secert
,对称加密秘钥传输完毕
(基操,勿6)
HTTPS 在 TCP 和 HTTP 中间加入了 SSL/TLS 安全层。
采用对称加密的方式加密传输数据和非对称加密的方式来传输密钥,既能够解决传输效率问题也能保证两端数据的安全传输。除此以外,为了可以证实服务器是可靠的,引入了数字证书,让浏览器验证证书的可靠性。
面试官拿起旁边已经凉透的乌龙茶,喝了一口。
(小伙子,有点东西)
「持续更新……」
1.看到这里了就点个赞支持下吧,你的「赞」是我创做的动力。
2.关注公众号前端食堂
,「你的前端食堂,记得按时吃饭」!
3.本文已收录在前端食堂Github
github.com/Geekhyt,求个小星星,感谢Star。