web的安全性(XSS、XSRF/CSRF的攻击和防范)

一、XSS

跨站脚本攻击(也称为XSS(cross-site scripting 的缩写),为了和 CSS 区分,故叫它XSS)指利用网站漏洞从用户那里恶意盗取信息
XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码、CSS样式和客户端脚本js。

XSS攻击可以分为3类:反射型((非持久型)、存储型(持久型)、基于DOM。

  1. 反射型(Reflected XSS)发出请求时,XSS代码出现在url中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,所以叫反射型XSS。
  2. 存储型 Stored XSS和Reflected XSS的差别就在于,具有攻击性的脚本被保存到了服务器端(数据库,内存,文件系统)并且可以被普通用户完整的从服务的取得并执行,从而获得了在网络上传播的能力。
  3. DOM型(DOM-based or local XSS)即基于DOM或本地的XSS攻击:其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。

这些操作一般可以完成下面这些事情:

  • 窃取Cookie。
  • 监听用户行为,比如输入账号密码后直接发送到黑客服务器。
  • 修改 DOM 伪造登录表单。
  • 在页面中生成浮窗广告。
  • 制造网页页面混乱
1、攻击方式举例:
  • 在文章中发表评论的时候偷偷插入一段< script>…< /script>代码,然后别人在访问这个文章的时候就会执行这段代码了,如果攻击代码中为获取cookie发送到攻击者服务器,那么攻击者就能拿到这个数据了。这就是恶意获取别人的信息。

  • 发布博客,在博客中插入脚本代码,别人在查看博客内容时就会执行这段脚本代码,这种不正常操作的脚本代码就会影响别人的网站。

其实就是在表单输入框中写脚本代码向页面注入脚本。

2、xss防范

开发者要时刻谨记不要相信用户输入的任何信息,一定要对用户提交的内容进行过滤。

  • 前端对关键符号进行转义,如script标签的尖括号,’<’ 替换为 ‘&lt;’ ,’>’ 替换为 ‘&gt;’ 等再提交给后台。

具体实现代码可见:https://blog.csdn.net/m0_38134431/article/details/84950653

  • 过滤用户的事件属性(如onclick等)、过滤不安全的style标签、script标签、iframe标签等

具体实现代码可见:https://blog.csdn.net/m0_38134431/article/details/84953785

  • 或者后端对前端提交的代码进行替换,这样可能性能上会好些。

xss攻击更详细参考:https://juejin.im/post/5df5bcea6fb9a016091def69#heading-64

二、XSRF/CSRF

跨站点请求伪造(也称为XSRF或CSRF(Cross-site request forgery))。指的是黑客诱导用户点击链接,打开黑客的网站,然后黑客利用用户目前的登录状态发起跨站请求。

它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

我们可以这样理解:
攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。

CSRF的攻击原理:
在这里插入图片描述
(重点:用户一定是注册登录过A网站,那么在B网站进行间接访问A网站的时候才能上传cookie,仿照用户登录A网站。如果没登录过,那么网站A会要求用户进行登录)

1、XSRF攻击方式举例:
  1. 你已经登录过一个购物网站,正在浏览商品
  2. 该网站的付费接口是 xxx.com/pay?id=100 但是付费时没有任何验证(当然这只是假设,现在很多电商网站验证性都做得比较安全了)
  3. 然后你收到了一封邮件,邮件有一个图片你点击了,图片地址隐藏为< img src=“xxx.com/pay?id=100” />
  4. 当你点开邮件图片的时候,就已经悄悄付款购买了,这时攻击者也拿到了你的数据了。
2、XSRF防范
  1. 不要相信不知来源的外链,当你点击了网站A的时候不要乱点击其他外链来跳转到网页A。
  2. 网站上增加验证流程(如输入指纹,密码,短信验证)
  3. token验证、referer验证、隐藏令牌(百度学习下)

CSRF攻击详细参考:https://juejin.im/post/5df5bcea6fb9a016091def69#heading-74

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值