前端安全

86 阅读2分钟
XSS


XSS 简单一点就是黑客将代码注入到你的页面中然后运行代码


XSS 分两种类型 :持久型和非持久型。


持久型 就是指将代码注入你的服务器,当你在某个时刻调用的时候会直接运行代码,窃取到你的数据。


非持久型 一般通过修改 URL 参数的方式加入攻击代码,诱导用户访问链接从而进行攻击。



持久型 :比如说在输入密码的时候,我将一段后台语言的代码写在密码框里面,比方说java代码写在密码框里面,这段代码被发送到后台之后可能直接就运行了,这样就会造成无法想象的后果
非持久型:一般都是在地址栏里面写一些转账之类的代码,诱导用户点击,但是现在绝大多数的浏览器会过滤到这些代码

xss 防御办法



转义字符

[JavaScript]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
function xss(str){
return str.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/"/g, '&quto;')
.replace(/'/g, ''')
.replace(/`/g, '`')
.replace(/\//g, '/')
}



CSP



csp 设置一个白名单告诉浏览器,哪些数据可以请求,哪些数据不可以请求

[HTML]
纯文本查看
复制代码
1
<meta http-equiv="Content-Security-Policy:default-src ‘self’">



告诉浏览器只有本域名的资源可以请求。




CSRF(跨站请求伪造)


跨站请求伪造就是,黑客搭建一个自己的服务,当用户在未知情况下登录了这个网站,黑客就可以用你的身份发送请求给某些网站窃取资料
防御手段

  • 不让第三方平台请求
  • Token




事件劫持


事件劫持就是黑客创建一个网站,然后在网站中设置iframe标签,引入银行之类的网站. 然后作者在使用样式遮挡等操作诱导用户点击或者输入他想要的数据

X-FRAME-OPTIONS



后台通过设置 X-FRAME-OPTIONS:DENY 就可以禁止iframe标签