CSRF,XSS攻击与预防

CSRF

CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。

在使用Cookie作为登录标记的系统上,Cookie泄露是个严重的问题,因此浏览器做了一些优化,浏览器会以域名为单位来存储Cookie,在访问同一个域名的时候自动会带上此域名对应的Cookie,同时你无法通过javascript获取其他域名的Cookie。比如有两个域名A和B,用户在A网站上已经完成了登录,此时Cookie被保存了下来,如果在域名B下面的某个页面上跳转到域名A下面的某个页面,你会发现域名A的Cookie会被带上,同时还发现请求头中的 Referer 是域名B的。

那么在什么情况下会出现呢,比如你再浏览器打开了网站A并登录了进去,此时你不小心打开了恶意网站B,如果网站B幕后的人对网站A很难了解,这样可能就危险了。

如果是普通的页面跳转一般是GET操作,会导致用户信息被泄露。

如果网站B使用的是POST表单提交的话,可能会导致一些修改操作,这就很危险了。

此时后端程序需要校验 Referer才行,或者不使用 Cookie ,改用 JWT 这样的令牌。

XSS

XSS又叫CSS(Cross Site Script),跨站脚本攻击。

试想一下,在一个用户可以发布文章和发布评论的网站上,如果用户输入的内容包含javascript脚本会怎么样,此时浏览器会按照脚本内容执行的,显然这个页面上的脚本是能够获取到诸如Cookie或者header信息的,它可以将这些信息投递到黑客的系统,危害巨大。

防范措施就是在用户提交评论等输入信息的时候,后端程序要做好对特殊字符的转义处理。

相关推荐
威斯软科的老司机几秒前
通俗讲解 CNN 图像识别、向量 Embedding、Softmax 概率计算这三块的简化原理
前端·人工智能·ui·数字孪生
泯泷1 小时前
手搓JSVM第 12 篇:完整最小 JSVM 实现与源码设计复盘
前端·javascript·前端框架
默_笙1 小时前
🍔 给 AI 发一张结构化表格(下):从"自由发挥"到"按格填空"的输出驯服指南
前端·javascript
泯泷1 小时前
手搓JSVM第 11 篇:打包、模块与 CLI:把 VM 产物变成可运行文件
前端·javascript·前端框架
泯泷1 小时前
手搓JSVM第 10 篇:对象、数组与属性访问
前端·javascript·前端框架
泯泷2 小时前
手搓JSVM第 9 篇:闭包:函数如何记住外部变量
前端·javascript·前端框架
晴天162 小时前
前端 SSR、BFF 原理介绍
前端·javascript·网络·html
全栈技术负责人3 小时前
AI 效能工具建设:Agent 可观测性技能技术方案与实践
前端·ai·ai编程
梦想平凡3 小时前
百游棋牌源代码开发搭建教程(一):全端工程结构、开发环境配置与首次启动验证
前端·javascript·源代码管理
妙码生花3 小时前
两个月 59 篇 AI 开发日志 + Golang 商业级实战项目收工后,得来的 AI 使用心法-上
前端·后端·gin