xss和csrf概要

简介: XSS是跨站脚本攻击,是一种代码注入攻击。攻击者通过在用户的浏览器中插入注入恶意脚本,利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。

Xss

是什么

XSS是跨站脚本攻击,是一种代码注入攻击。攻击者通过在用户的浏览器中插入注入恶意脚本,利用这些恶意脚本,攻击者可获取用户的敏感信息如 Cookie、SessionID 等,进而危害数据安全。

为什么产生

程序对输入输出的控制不够严格,导致"精心构造“的脚本输入后,在输到前端时被浏览器当作有效代码解析执行

如何防范

有三个种类,

  1. 反射型XSS服务端返回脚本,客户端执行
  2. 储存型XSS后端存储了非法脚本,并且前端直接显示
  3. DOM XSS基于DOM或本地的XSS攻击

一般情况下,前两种是后端RD的责任,而 DOM 型 XSS 攻击不发生在后端,是前端 RD 的责任。

对于 HTML 转义通常只有一个规则,就是把 & < > " ' / 这几个字符转义掉,确实能起到一定的 XSS 防护作用,但并不完善:

'<' 转义为 &lt;

'>' 转移为 &gt;

 

\ : \\

/ : \/

; : ;

 

DOM 型 XSS 攻击,实际上就是前端代码不够严谨,把不可信的数据当作代码执行了。

 

使用.innerHTML、document.write()、v-html时要特别小心,或尽量不适用,不要把不可信的数据作为 HTML 插到页面上,而应尽量使用 .textContent、.setAttribute() 等。

 

危害
  1. 挂马  
  2. 盗取用户cookie,就可以模拟你去做一些事情,删除目标文章,篡改数据,嫁祸等。
  3. D-DOS攻击(拒绝服务)
  4. 钓鱼
  5. 蠕虫式挂马攻击、刷广告、刷流量、破坏网上数据。

CSRF

跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。

利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的。

  1. 登录了一个受信任的网站A,并且本地存放了Cookie;
  2. 在不关闭A的情况下,访问了危险网站B;

攻击者盗用了你的身份,以你的名义发送恶意请求。

CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账。

造成的问题包括:个人隐私泄露以及财产安全。

防护策略

通过增强自己网站针对CSRF的防护能力来提升安全性。

  1. 尽量使用POST,少用get,因为get太容易被人利用了,相对降低被攻击的风险
  2. 再加入验证码(划一下),让用户输入验证码,或者划一下,能够确保这是一种用户行为,现代化比较智能的验证码,很难破解。
  3. Referer:http头上有个字段referer能记录记录当前请求的来源地址,在后端判断这个refere的值不是当前网页,那么就直接拒绝这个请求。

也可以直接规定只能从某个网页过来,如果不是从某个网页过来,直接拒绝

  1. Anti CSRF Token  从后端拿csrfToken,放到自己的请求头中,让后端判断。


目录
相关文章
|
8天前
|
SQL 安全 数据库
从入门到精通:Python Web安全守护指南,SQL注入、XSS、CSRF全防御!
【9月更文挑战第13天】在开发Python Web应用时,安全性至关重要。本文通过问答形式,详细介绍如何防范SQL注入、XSS及CSRF等常见威胁。通过使用参数化查询、HTML转义和CSRF令牌等技术,确保应用安全。附带示例代码,帮助读者从入门到精通Python Web安全。
28 6
|
9天前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
14 5
|
2月前
|
SQL 安全 数据库
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
【7月更文挑战第26天】在 Python Web 开发中, 安全性至关重要。本文聚焦 SQL 注入、XSS 和 CSRF 这三大安全威胁,提供实战防御策略。SQL 注入可通过参数化查询和 ORM 框架来防范;XSS 则需 HTML 转义用户输入与实施 CSP;CSRF 防御依赖 CSRF 令牌和双重提交 Cookie。掌握这些技巧,能有效加固 Web 应用的安全防线。安全是持续的过程,需贯穿开发始终。
68 1
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
|
2月前
|
SQL 安全 数据库
|
2月前
|
SQL 安全 数据库
深度揭秘:Python Web安全攻防战,SQL注入、XSS、CSRF一网打尽!
【7月更文挑战第27天】在 Web 开发中,Python 面临着如 SQL 注入、XSS 和 CSRF 等安全威胁。
59 0
|
2月前
|
SQL 安全 前端开发
Web安全新纪元:Python如何筑起SQL注入、XSS、CSRF的铜墙铁壁?
【7月更文挑战第26天】在Web开发中,安全性至关重要。Python提供强大工具来抵御SQL注入、XSS和CSRF等威胁。使用ORM如Django和SQLAlchemy可防SQL注入; Django等框架自动转义输出防XSS; CSRF通过自动及手动验证令牌来阻止。开发者须持续学习最新安全实践以保护用户数据。迈向Web安全新纪元,Python助你一臂之力。
33 1
|
2月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
【7月更文挑战第27天】在 Python Web 开发中, 安全至关重要。
46 0
|
2月前
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【7月更文挑战第27天】在 Web 开发中,安全漏洞如同暗礁,其中 SQL 注入、XSS 和 CSRF 尤为棘手。本文通过实战案例展示如何使用 Python 抵御这些威胁。
57 0
|
2月前
|
SQL 安全 数据库
守护Web世界的和平使者:Python Web安全基础,从认识SQL注入、XSS、CSRF开始!
【7月更文挑战第27天】在数字世界里,Web应用如星辰照亮信息交流,但也潜藏安全隐患:SQL注入、XSS与CSRF。SQL注入让攻击者操控数据库;通过参数化查询可防御。XSS允许执行恶意脚本;确保输出编码至关重要。CSRF诱骗用户发送恶意请求;使用CSRF令牌能有效防护。作为开发者,掌握Python Web安全基础,如Flask和Django的安全特性,能帮助我们守护这片数字天地的和平与繁荣。
34 0