CSRF / XSRF(跨站请求伪造),XSS/CSS(跨站脚本攻击)

CSRF / XSRF(跨站请求伪造)

你可以这么理解 CSRF 攻击:攻击者盗用了你的身份,以你的名义进行恶意请求。它能做的事情有很多包括:以你的名义发送邮件、发信息、盗取账号、购买商品、虚拟货币转账等。总结起来就是:个人隐私暴露及财产安全问题。

/*
 * 阐述 CSRF 攻击思想:(核心2和3)
 * 1、浏览并登录信任网站(举例:淘宝)
 * 2、登录成功后在浏览器产生信息存储(举例:cookie)
 * 3、用户在没有登出淘宝的情况下,访问危险网站
 * 4、危险网站中存在恶意代码,代码为发送一个恶意请求(举例:购买商品/余额转账)
 * 5、携带刚刚在浏览器产生的信息进行恶意请求
 * 6、淘宝验证请求为合法请求(区分不出是否是该用户发送)
 * 7、达到了恶意目标
 */

防御措施(推荐添加token / HTTP头自定义属性)(同源检测,使用Referer确定来源域名,增加csrf token服务器发送给浏览器的token不存储在浏览器的存储里面,放置在页面上面,每次请求时会携带该token)

  1. 防御措施(推荐添加token / HTTP头自定义属性)

  2. 涉及到数据修改操作严格使用 post 请求而不是 get 请求
  3. HTTP 协议中使用 Referer 属性来确定请求来源进行过滤(禁止外域)
  4. 请求地址添加 token ,使黑客无法伪造用户请求
  5. HTTP 头自定义属性验证(类似上一条)
  6. 显示验证方式:添加验证码、密码等

XSS/CSS(跨站脚本攻击)

XSS又叫CSS(Cross Site Script),跨站脚本攻击:攻击者在目标网站植入恶意脚本(js / html),用户在浏览器上运行时可以获取用户敏感信息(cookie / session)、修改web页面以欺骗用户、与其他漏洞相结合形成蠕虫等。

浏览器遇到 html 中的 script 标签时,会解析并执行其中的js代码

针对这种情况,我们对特殊字符进行转译就好了(vue/react等主流框架已经避免类似问题,vue举例:不能在template中写script标签,无法在js中通过ref或append等方式动态改变或添加script标签)

XSS类型:

  • 持久型XSS:将脚本植入到服务器上,从而导致每个访问的用户都会执行
  • 非持久型XSS:对个体用户某url的参数进行攻击

防御措施(对用户输入内容和服务端返回内容进行过滤和转译)(输入输出检验和过滤,onlycookie)

  • 现代大部分浏览器都自带 XSS 筛选器,vue / react 等成熟框架也对 XSS 进行一些防护
  • 即便如此,我们在开发时也要注意和小心
  • 对用户输入内容和服务端返回内容进行过滤和转译
  • 重要内容加密传输
  • 合理使用get/post等请求方式
  • 对于URL携带参数谨慎使用
  • 我们无法做到彻底阻止,但是能增加黑客攻击成本,当成本与利益不符时自然会降低风险
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大鸡腿最好吃

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

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

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

打赏作者

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

抵扣说明:

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

余额充值