Web 安全 跨站 跨域 XSS CSRF

跨站

跨站即 cross-site,它和同站(same-site)相对,对协议和端口号无要求,只要两个 URL 的 eTLD + 1 一致,就能称为同站。那么什么是 eTLD 呢?

eTLD 即 effective top level domain,有效顶级域名,比如 http://juejin.cn 的 eTLD 是 .cn,http://test.org 的 eTLD 是 .org,而 http://chorer.github.io 则是 github.io(注意不是 .io)。而 eTLD + 1 指的是有效顶级域名 + 二级域名,比如对于 http://juejin.cn 来说就是 juejin.cn,对于 http://test.org 来说就是 test.org

跨域

跨域即 cross-domain,它和同源(same-origin)相对,要求两个 URL 的协议、端口号、域名都一致才能称为同源

XSS

XSS 即 Cross-Site Scripting(跨站脚本攻击),指的是黑客将恶意代码注入页面中,只要打开页面,代码就会执行。XSS 攻击可能导致 Cookie 被窃取、个人信息泄露、劫持流量实现恶意跳转等

CSRF

CSRF 即跨站请求伪造,黑客利用请求会携带 Cookie 的特点,冒充用户身份向正常网站发出请求,执行某些非法操作。它的作用过程大概是这样的:

用户登录 http://article.com,服务器验证通过,返回 Cookie 给浏览器保存

假设 Cookie 没过期,这期间黑客诱导用户访问恶意网站 http://evil.com,这个网站中有这么一段代码:

那么恶意网站就会向 http://article.com 发起一个携带 Cookie 的请求,服务端这边验证没问题,就会把 id 为 1 的文章给删除了

这里黑客之所以可以发起 CSRF 攻击,有下面几个原因:

用户:登录了正常网站且没有登出(Cookie 有效),之后访问了恶意网站

黑客:知道执行请求的 URL 和所有的参数

服务端:只使用 Cookie 进行权限验证,没有任何针对 CSRF 的防御措施

img 是支持跨域请求的。其实黑客也可以直接发送一个 AJAX 请求,不过由于同源策略和 CORS 的限制,http://evil.com 是无法向不同源的 http://article.com 发送请求的,所以黑客使用的是天然可以跨域的 img 标签

相关推荐
majingming12344 分钟前
FUNCTION
java·前端·javascript
A_nanda1 小时前
Vue项目升级
前端·vue3·vue2
SuperEugene2 小时前
Axios 接口请求规范实战:请求参数 / 响应处理 / 异常兜底,避坑中后台 API 调用混乱|API 与异步请求规范篇
开发语言·前端·javascript·vue.js·前端框架·axios
abigale032 小时前
【浏览器 API / 网络请求 / 文件处理】前端文件上传全流程:从基础上传到断点续传
前端·typescript·文件上传·vue cli
Setsuna_F_Seiei2 小时前
AI 对话应用之页面滚动交互的实现
前端·javascript·ai编程
新缸中之脑3 小时前
追踪来自Agent的Web 流量
前端
wefly20173 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
Chengbei113 小时前
若依全漏洞复现:从 SQL 注入到 RCE 一站式实战 复现、利用与防御
数据库·sql·安全·web安全·网络安全·系统安全·安全架构
英俊潇洒美少年4 小时前
vue如何实现react useDeferredvalue和useTransition的效果
前端·vue.js·react.js
钛态4 小时前
Flutter for OpenHarmony:mockito 单元测试的替身演员,轻松模拟复杂依赖(测试驱动开发必备) 深度解析与鸿蒙适配指南
服务器·驱动开发·安全·flutter·华为·单元测试·harmonyos