内容简介:CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。XSS攻击全称跨站脚本攻击,是为不和
- 含义
CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
- 场景模拟 :
-
a欠b 1000元钱, 在银行转账给b, a的浏览器执行的操作是:
http://www.bank.com/transfer.php?from=a&money=1000&to=b
-
这个时候,c想要攻击a,他执行了下面的代码
http://www.bank.com/transfer.php?from=Alice&money=9999&to=Cathy
当然,结果是失败的,浏览器会记住a的session_id,而c通过浏览器的cookie带过去的session_id当然不是a的,所以失败。 - c又想了一个方法, 写了一个网页, 访问方法是: www.c.com/choujiang.p… , 用抽奖来吸引a, choujiang.php的代码是:
<html> <body> <form method="get" action="http://www.bank.com/transfer.php"> <input type="hidden" name="from" value="a"> <input type="hidden" name="money" value="1000"> <input type="hidden" name="to" value="c"> <input type="button" onclick="submit()" value="活动抽奖"> </form> </body> </html> 复制代码
-
只要a点击了http://www.c.com/choujiang.php, 就会在自己的浏览器页面显示一个抽奖按钮。
如果a刚给b转账完毕, 又点击了这个抽奖按钮, 就相当于a的浏览器发起了如下请求:
http://www.bank.com/transfer.php?from=a&money=1000&to=c
这时, 银行后台服务器从http的cookie中识别出确实是a在转账给c, 是合理操作。但是,a并不知情
XSS(可以分为 反射型xss攻击
和 存贮型xss攻击
)
- 含义
XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
- 场景模拟
-
反射型xss攻击 正常发送消息:
http://www.test.com/message.php?send=Hello
接收者将会接收信息并显示Hello
非正常发送消息:http://www.test.com/message.php?send=<script>alert(‘foolish!’)</script>
这时接收者的窗口就会弹出foolish
弹窗。 以上,只是简单的示例,实际上,xss攻击可以做得更加复杂,窃取用户账号密码也是正常的 -
存贮型xss攻击 在输入框里填写
you are foolish!
那么表单里要发送的的input框就会变成这样<input type=“text” name=“content” value="you are foolish!">
不做任何过滤的话,这个会当成正常数据入库 当要用到这个数据,从库取出来的时候,就会出现you are foolish
的弹窗。
SQL注入
- 含义
所谓 SQL 注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.
- 场景模拟
- 和存贮型xss攻击的例子本质上是一样的
-
假如现在 php 的登录代码是这样的
$sql = "select * from user where username = 'a' and pwd = md5(123456)
然后在前端密码的输入框里填写' or 1 = 1#
,那么sql语句就会变成$sql = "select * from user where username = '' or 1 = 1#' and pwd = md5(123456)
#
在sql的意思是注释,后面的sql不会再执行 所以,$sql = "select * from user where username = '' or 1 = 1
登录成功。
以上所述就是小编给大家介绍的《CSRF, XSS, Sql注入原理和处理方案》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Spring依赖注入原理分析
- UAV MOF工作原理之Agent注入机制原理
- PDO防sql注入原理分析
- Apache Struts OGNL注入漏洞原理与示例
- HttpCanary实现对HTTP2协议的抓包和注入(原理篇)
- Angular 4 依赖注入教程之二 组件中注入服务
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning Vue.js 2
Olga Filipova / Packt Publishing / 2017-1-5 / USD 41.99
About This Book Learn how to propagate DOM changes across the website without writing extensive jQuery callbacks code.Learn how to achieve reactivity and easily compose views with Vue.js and unders......一起来看看 《Learning Vue.js 2》 这本书的介绍吧!