前端安全之CSRF
一、跨站点请求伪造(CSRF)
什么是csrf呢?
借助用户的身份去做有损用户利益(一些事情)的事情。
怎么实现跨站点请求伪造呢?
1、伪造者通过创造一个带有<a href="">或<img src="">标签地址指向伪造者创建的url的网页
比如:
<a href="http://bank.com/transfer.do?acct=MARIA&amount=100000">查看我的图片!</a>
<img src =“http://bank.com/transfer.do?acct=MARIA&amount=100000”width =“0”height =“0”border =“0”>
2、伪造者通过创造一个带有form表单的网页
<form action =“<nowiki> http://bank.com/transfer.do </ nowiki>”method =“POST”>
<input type =“hidden”name =“acct”value =“MARIA”/>
<input type =“hidden”name =“amount”value =“100000”/>
<input type =“submit”value =“查看我的图片”/>
</form>
如果某个网站有漏洞,伪造者就可以编写一个带有直接跳转这个网站的某个操作的链接的页面,用户点击伪造者创建的这个页面的url,就会执行伪造者想让用户执行的操作。假如这是一个有转账操作的网站,某个用户有在这个网站登录过,并且没有注销登录状态,用户身份一直可以被拿到,用户点击伪造者伪造的转账url,转账账户是伪造者的账户,用户就会将钱转给伪造者。
网站如何防止csrf攻击?
1、网站添加用户确认操作:
比如请求之前添加用户输入验证码、或是第二次确认密码、邮箱验证等功能
2、服务端随机产生token,验证token
进入页面,服务端随机生成一个token,然后存在session中,请求的时候服务端验证请求中的token是否与服务器存储的一致。
3、验证请求的来源,http referer字段
伪造者给的链接,这里是个模拟转账的链接,已经做了referer判断
总结:
所以我们不要随便去浏览一些不安全的网站,更不要在不安全的网站上去注册/登录自己的信息,谨慎在未知安全的网站去注册自己的信息,特别是涉及
到转账支付的网站,如果登录这样的网站,且没有主动去退出登录,破坏者就有机会利用这些不安全的网站的漏洞,利用你的身份去做一些损害你的利益
的事情,比如诱导你点击某个链接或按钮然后就执行不安全网站上的某个转账操作 。
我们常见的在网页上执行某个操作之前,被要求输入二维码、二次确认密码等都是为了防止攻击者借着用户的身份对网页去直接进行某个操作,在某些具有
重要的操作的网页,也可以利用服务器随机生成token的方式,去确认在执行重要操作时是可信任的用户在真正做执行操作,或是服务器通过判断请求的来源http中
的referer字段,确保执行操作的真实性。
参考资料:
学习node开发、部署服务:
https://github.com/nswbmw/N-blog/blob/master/book/4.15%20%E9%83%A8%E7%BD%B2.md#4151-%E7%94%B3%E8%AF%B7-mlab
跨站请求伪造crsf:
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)
很容易懂的crsf讲解:
https://cloud.tencent.com/developer/article/1004943
前端安全之CSRF的更多相关文章
- 前端安全之CSRF攻击
前端安全之CSRF攻击 转载请注明出处:unclekeith: 前端安全之CSRF攻击 CSRF定义 CSRF,即(Cross-site request forgery), 中文名为跨站请求伪造.是一 ...
- 前端web安全-CSRF基础入门
前言 今天找了个新地方进行学习 嘿嘿 采光不错!特别适合看书呢. 前言 1.CSRF 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click att ...
- 前端安全问题之CSRF和XSS
一.CSRF 1.什么是 CSRF CSRF(全称 Cross-site request forgery),即跨站请求伪造 2.攻击原理 用户登录A网站,并生成 Cookie,在不登出的情况下访问危险 ...
- web前端学习路线(含20个真实web开发项目集合)
目前web前端工程师日均岗位缺口已经超过50000,随着互联网+的深入发展,html5作为前端展示技术,市场人才需求量将呈直线上涨. Web前端工程师的岗位职责是利用HTML.CSS.Java.DOM ...
- Web前端--黑客技术揭秘(菜鸟知识)
一,Web安全的关键点 1.同源策略是众多安全策略的一个,是Web层面上的策略.很重要. 2.同源策略规定:不同域的client脚本在没明白授权的情况下.不能读写对方的资源. 3.同域要求两个网站同协 ...
- Django-中间件-csrf扩展请求伪造拦截中间件-Django Auth模块使用-效仿 django 中间件配置实现功能插拔式效果-09
目录 昨日补充:将自己写的 login_auth 装饰装在 CBV 上 django 中间件 django 请求生命周期 ***** 默认中间件及其大概方法组成 中间件的执行顺序 自定义中间件探究不同 ...
- 自学web前端达到什么水平,才能满足求职的标准?
大多数野生程序员最棘手的问题就是如何依靠技术解决温饱,通俗来讲就是技术折现的问题. 如果是单纯出于兴趣,或者只是为了突击某一阶段或者某一项目技术壁垒,不跟就业挂钩的自学倒也是无关痛痒.但是当上岗成为自 ...
- SpringSecurity框架下实现CSRF跨站攻击防御
一.什么是CSRF 很多朋友在学习Spring Security的时候,会将CORS(跨站资源共享)和CSRF(跨站请求伪造)弄混,以为二者是一回事.其实不是,先解释一下: CORS(跨站资源共享)是 ...
- 关于SSRF与CSRF漏洞的解释
目录 SSRF服务端请求伪造(外网访问内网) 1.SSRF形成原因 2.利用SSRF漏洞的目的 3.SSRF漏洞的用途 4.SSRF漏洞的特性 实例 5.如何挖掘SSRF漏洞 6.常用SSRF去做什么 ...
随机推荐
- Unity导航系统Navigation使用教程
Unity开发VR之Vuforia 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- ...
- 使用定时器通过改变图片的src来切换图片
点击以后开始自动切换图片 $("#page3_cover_1_back").click(function(){ var i=3; var haha=setInterval(func ...
- hdu-2196 树形dp 求一个树中所有节点能到达的最远距离f[i] (其实也不难嘛!)
#include <bits/stdc++.h> using namespace std; ; struct T { int to; int w; }; vector < vecto ...
- servlet创建项目过程中,servlet内容重写的两种搭建,tomcat的配置,class的存放位置,web.xml的搭建等注意事项与易错点
运行一个servlet项目:需要做这些前提工作: 1.配置tomcat,在server选项卡的设置也就基本的设置,HTTP port与JMX port等端口号:基本都是默认的.这里需要注意的是,有的教 ...
- crash - JNI WARNING: input is not valid modified utf-8: illegal continuation byte
the key point is "Modified UTF-8" is not like "Regular UTF-8", a legal Rgular UT ...
- LG1861 星之器
题意 题目背景 Magic Land 上的时间又过了若干世纪„„ 现在, 人们谈论着一个传说:从前,他们的祖先来到了一个位于东方的岛屿, 那里简直就是另外一个世界.善于分析与构造的 Magic Lan ...
- Java(控制台输出)实现猜数字小游戏
import java.util.Scanner; import java.util.Random; public class GuestNum{ public static void main(St ...
- ipfs cluster 模式部署使用(docker-compose 环境运行)
ipfs 点对点的分布式文件系统,官方提供了集群模式运行的docker 镜像,以及docker-compose 文件 所以测试下 环境准备 docker-compose version: '3.4 ...
- phpdocumentor安装和使用总结
为了解决一校友在安装和使用phpDocumentor过程中遇到的问题,自己闲时也折腾了一下这个东西,总结见下: 一.定义: 自己刚听到这个词时还不知道这个是什么东西,干啥用的,就去百度了一下,说道: ...
- 用 .gitlab-ci.yml 配置 gitlab 的任务(job)
官方说明:https://docs.gitlab.com/ee/ci/yaml/