浏览器基础原理-安全: CSRF攻击

简介: 浏览器基础原理-安全: CSRF攻击

CSRF(Cross-site request forgery)跨站请求伪造


概念: 是指黑客引诱用户打开黑客的网站,在黑客的网站中,利用用户的登录状态发起的跨站请求。简单来讲,CSRF 攻击指黑客利用了用户的登录状态,并通过第三方的站点来做一些坏事。

攻击方式:


1-自动发起 Get 请求


比如将转账请求隐藏在 img 标签内, 欺骗浏览器这是一张图片, 等加载时, 再发起转账请求


2-自动发起 POST 请求


网页内构建隐藏表单, 里面含有转账接口. 通过诱导用户登陆的方式, 来让表单自动提交, 从而执行转账操作.


3-引诱用户点击链接


通过诱导用户点击含有转账接口的链接, 来实现用户资金的转移.


综上, CSRF攻击不需要将恶意代码注入用户的页面, 而是利用服务器的漏洞和用户的登录状态来实现出乎意料的攻击.


如何防止 CSRF 攻击:


发起 CSRF 攻击的三个必要条件:


1-目标网站要有 CSRF 漏洞


2-用户要登录过目标站点, 并且在浏览器上保持有该站点的登录状态


3-需要用户打开一个第三方站点, 可以是黑客的站点, 也可以是一些论坛


满足以上三个条件, 黑客就可以进行 CSRF 攻击了.


如何让服务器避免遭受到 CSRF 攻击, 通常有以下几种途径:


1-充分利用好 Cookie 的 SameSite 属性


设定 Cookie 中的 SameSite 属性来实现对某些关键 Cookie 数据的传送


2-验证请求的来源站点


通过设定HTTP请求头中的Referer和Origin属性来判断是否禁止第三方站点的请求


3-CSRF Token


在向服务器发起请求时, 服务器生成一个 CSRF Token. 若用户端要发起转账请求, 则需要带上这个Token, 同时 服务器 会检验该 Token 是否合法, 若是第三方发起的请求, 没有或者非法都会导致拒绝.


参考: 极客时间-浏览器工作原理与实践


相关文章
|
23天前
|
安全
浏览器安全
采用匿名方式浏览,你在登录网站时会产生一种叫cookie(即临时文件,可以保存你浏览网页的痕迹)的信息存储器,许多网站会利用cookie跟踪你在互联网上的活动。 你可以在使用浏览器的时候在参数选项中选择关闭计算机接收cookie的选项。(打开E浏览器,点击“工具”—“Internet选项”,在打开的选项中,选择“隐私”,保持“Cookies”该复选框为未选中状态,点击按钮"确定")
|
2月前
|
前端开发 JavaScript 异构计算
简述浏览器的渲染原理
浏览器渲染原理主要包括以下步骤:1)解析HTML文档生成DOM树;2)解析CSS生成CSSOM树;3)结合DOM与CSSOM生成渲染树;4)布局计算(回流)确定元素大小和位置;5)绘制(Paint)将节点转为图形内容;6)合成(Composite)多层图像。整个过程从文档解析到最终输出完整网页,并通过优化技术提升性能。
|
3月前
|
Web App开发 缓存 安全
解决Edge浏览器提示“此网站已被人举报不安全”
【9月更文挑战第1天】当 Edge 浏览器提示“此网站被举报为不安全”时,可尝试:关闭 Microsoft Defender SmartScreen;检查网站安全性;清除缓存和 Cookie;更新 Edge 至最新版;或使用其他浏览器。若问题依旧,联系网站管理员和技术支持。同时,避免在不可信网站输入敏感信息,保护网络安全与隐私。
597 7
|
4月前
|
存储 缓存 安全
解决Edge浏览器提示“此网站已被人举报不安全”
【8月更文挑战第19天】如果Edge浏览器提示“此网站已被人举报不安全”,首先确认网站可信度及安全证书有效性,避免访问可疑网站。检查浏览器是否需要更新,并确保自动更新功能已开启。可暂时关闭Microsoft Defender SmartScreen(不建议长期关闭),清除缓存和Cookies,或检查第三方安全软件设置。若问题持续,考虑重置Edge浏览器设置,保留重要数据。如仍无法解决,联系网站管理员或微软支持。
452 7
|
5月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
【7月更文挑战第27天】在 Web 开发中,Python 面临着如 SQL 注入、XSS 和 CSRF 等安全威胁。
75 0
|
5月前
|
SQL 安全 前端开发
Web安全新纪元:Python如何筑起SQL注入、XSS、CSRF的铜墙铁壁?
【7月更文挑战第26天】在Web开发中,安全性至关重要。Python提供强大工具来抵御SQL注入、XSS和CSRF等威胁。使用ORM如Django和SQLAlchemy可防SQL注入; Django等框架自动转义输出防XSS; CSRF通过自动及手动验证令牌来阻止。开发者须持续学习最新安全实践以保护用户数据。迈向Web安全新纪元,Python助你一臂之力。
47 1
|
5月前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【7月更文挑战第27天】在 Web 开发中,安全漏洞如同暗礁,其中 SQL 注入、XSS 和 CSRF 尤为棘手。本文通过实战案例展示如何使用 Python 抵御这些威胁。
67 0
|
5月前
|
SQL 安全 数据库
守护Web世界的和平使者:Python Web安全基础,从认识SQL注入、XSS、CSRF开始!
【7月更文挑战第27天】在数字世界里,Web应用如星辰照亮信息交流,但也潜藏安全隐患:SQL注入、XSS与CSRF。SQL注入让攻击者操控数据库;通过参数化查询可防御。XSS允许执行恶意脚本;确保输出编码至关重要。CSRF诱骗用户发送恶意请求;使用CSRF令牌能有效防护。作为开发者,掌握Python Web安全基础,如Flask和Django的安全特性,能帮助我们守护这片数字天地的和平与繁荣。
45 0
|
1月前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式