CSRF, XSS, Sql注入原理和处理方案

栏目: 数据库 · 发布时间: 5年前

内容简介: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更具危险性。

  • 场景模拟
  1. a欠b 1000元钱, 在银行转账给b,  a的浏览器执行的操作是: http://www.bank.com/transfer.php?from=a&money=1000&to=b
  2. 这个时候,c想要攻击a,他执行了下面的代码 http://www.bank.com/transfer.php?from=Alice&money=9999&to=Cathy 当然,结果是失败的,浏览器会记住a的session_id,而c通过浏览器的cookie带过去的session_id当然不是a的,所以失败。
  3. 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>
复制代码
  1. 只要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用户将代码植入到提供给其它用户使用的页面中。

  • 场景模拟
  1. 反射型xss攻击 正常发送消息: http://www.test.com/message.php?send=Hello 接收者将会接收信息并显示 Hello 非正常发送消息: http://www.test.com/message.php?send=<script>alert(‘foolish!’)</script> 这时接收者的窗口就会弹出 foolish 弹窗。 以上,只是简单的示例,实际上,xss攻击可以做得更加复杂,窃取用户账号密码也是正常的

  2. 存贮型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注入式攻击.

  • 场景模拟
  1. 和存贮型xss攻击的例子本质上是一样的
  2. 假如现在 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注入原理和处理方案》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Rails 5敏捷开发

Rails 5敏捷开发

[美] Sam Ruby、[美] Dave Thomas、[美] David Heinemeier Hansson / 安道、叶炜、大疆Ruby技术团队 / 华中科技大学出版社 / 2017-12-30 / 115.00

本书以讲解“购书网站”案例为主线,逐步介绍Rails的内置功能。全书分为3部分,第一部分介绍Rails的安装、应用程序验证、Rails框架的体系结构,以及Ruby语言知识;第二部分用迭代方式构建应用程序,然后依据敏捷开发模式开展测试,最后用Capistrano完成部署;第三部分补充日常实用的开发知识。本书既有直观的示例,又有深入的分析,同时涵盖了Web开发各方面的知识,堪称一部内容全面而又深入浅出......一起来看看 《Rails 5敏捷开发》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具