一、跨站点请求伪造(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的更多相关文章

  1. 前端安全之CSRF攻击

    前端安全之CSRF攻击 转载请注明出处:unclekeith: 前端安全之CSRF攻击 CSRF定义 CSRF,即(Cross-site request forgery), 中文名为跨站请求伪造.是一 ...

  2. 前端web安全-CSRF基础入门

    前言 今天找了个新地方进行学习 嘿嘿  采光不错!特别适合看书呢. 前言 1.CSRF 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click att ...

  3. 前端安全问题之CSRF和XSS

    一.CSRF 1.什么是 CSRF CSRF(全称 Cross-site request forgery),即跨站请求伪造 2.攻击原理 用户登录A网站,并生成 Cookie,在不登出的情况下访问危险 ...

  4. web前端学习路线(含20个真实web开发项目集合)

    目前web前端工程师日均岗位缺口已经超过50000,随着互联网+的深入发展,html5作为前端展示技术,市场人才需求量将呈直线上涨. Web前端工程师的岗位职责是利用HTML.CSS.Java.DOM ...

  5. Web前端--黑客技术揭秘(菜鸟知识)

    一,Web安全的关键点 1.同源策略是众多安全策略的一个,是Web层面上的策略.很重要. 2.同源策略规定:不同域的client脚本在没明白授权的情况下.不能读写对方的资源. 3.同域要求两个网站同协 ...

  6. Django-中间件-csrf扩展请求伪造拦截中间件-Django Auth模块使用-效仿 django 中间件配置实现功能插拔式效果-09

    目录 昨日补充:将自己写的 login_auth 装饰装在 CBV 上 django 中间件 django 请求生命周期 ***** 默认中间件及其大概方法组成 中间件的执行顺序 自定义中间件探究不同 ...

  7. 自学web前端达到什么水平,才能满足求职的标准?

    大多数野生程序员最棘手的问题就是如何依靠技术解决温饱,通俗来讲就是技术折现的问题. 如果是单纯出于兴趣,或者只是为了突击某一阶段或者某一项目技术壁垒,不跟就业挂钩的自学倒也是无关痛痒.但是当上岗成为自 ...

  8. SpringSecurity框架下实现CSRF跨站攻击防御

    一.什么是CSRF 很多朋友在学习Spring Security的时候,会将CORS(跨站资源共享)和CSRF(跨站请求伪造)弄混,以为二者是一回事.其实不是,先解释一下: CORS(跨站资源共享)是 ...

  9. 关于SSRF与CSRF漏洞的解释

    目录 SSRF服务端请求伪造(外网访问内网) 1.SSRF形成原因 2.利用SSRF漏洞的目的 3.SSRF漏洞的用途 4.SSRF漏洞的特性 实例 5.如何挖掘SSRF漏洞 6.常用SSRF去做什么 ...

随机推荐

  1. 测试那些事儿—简述CPU的工作原理

    简单介绍CPU的工作原理 1.内部架构 CPU是由晶体管组成,其根本任务就是执行指令和数据处理,对计算机来说,就是由0和1组成的序列.CPU从逻辑上可分为3个模块,分别是控制单元,运算单元和存储单元. ...

  2. 20155219 2016-2017-2 《Java程序设计》第10周学习总结

    20155219 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 教材学习内容总结 Java的网络编程 网络编程 网络编程就是在两个或两个以上的设备(例如计 ...

  3. error: ld returned 1 exit status 解决

    1.程序未结束运行 2.全局变量冲突,不是宏定义冲突

  4. GinKgoCTF-Misc

    一:谁动了我的校徽? Jpg改txt——>寻找——>GKCTF{This_is_a_huaji} 二:奇怪的压缩包1 六位数字的密码一点也不安全!!!!!! 下载压缩包——>有密码( ...

  5. 【HDOJ4857】【反向拓扑排序】

    http://acm.hdu.edu.cn/showproblem.php?pid=4857 逃生 Time Limit: 2000/1000 MS (Java/Others)    Memory L ...

  6. 原版win10

    windows10专业版:ed2k://|file|cn_windows_10_multiple_editions_x64_dvd_6848463.iso|4303300608|94FD861E824 ...

  7. ios-根据单元格里的控件tag值,在方法外获得对应的section与row的值

    在cell的代理方法里:cellForRowAtIndexPath btn.tag = indexPath.section *100 + indexPath.row; [cell.exitPerson ...

  8. 关于kafka的新的group无法订阅到topic中历史消息的问题

    今天在写kafka的java api例子时候,遇到一个问题,比如我创建了一个test主题,往里面写了1,2,3,4,5条消息,在这个时候,我用一个新的group启动了一个消费者,发现该消费者只能读到5 ...

  9. How_Require_Extensions_Work

    Why Doing require extensions correctly is essential, because: Users should be able to install multip ...

  10. 20165308《Java程序设计》第7周学习总结

    20165308<Java程序设计>第7周学习总结 教材学习内容总结 第十一章:JDBC与MySQL数据库 MySQL数据库管理系统 启动MySQL数据库服务器 MySQL客户端管理工具 ...