[web安全]Web应用漏洞攻击分析与防范

时间:2022-05-30 15:06:30

网站攻击主要分为以下几类:
  (1) sql注入攻击
  SQL Injection:就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。
  (2) xml注入攻击
  XML是存储数据的一种方式,如果在修改或者查询时,没有做转义,直接输入或输出数据,都将导致XML注入漏洞。攻击者可以修改XML数据格式,增加新的XML节点,对数据处理流程产生影响。
  (3) CSRF 攻击
  CSRF(Cross-site request forgery),中文名称:跨站请求伪造,
  攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账……造成的问题包括:个人隐私泄露以及财产安全。
  (4) XSS攻击
  XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。
  2.sql注入攻击
  2.1 sql注入攻击造成的影响
  绕过登录验证,非法登录系统;非法读取、篡改、添加、删除数据库中的数据;盗取用户的各类敏感信息,获取利益;通过修改数据库来修改网页上的内容;私自添加或删除账号;注入木马等等。
  只要系统有一处存在sql注入漏洞,被利用到,对系统将是致命的伤害。最糟糕的是攻击者拿到了数据库服务器*的权限,可以对整个数据库服务器的数据做任何操作。
  2.2 sql注入攻击原理分析
  下面通过一个例子来了解sql注入的过程:
  假如有个登录页面,页面需要输入登录名和密码才能登录系统,
  正常sql语句应该是:
  SELECT COUNT(*) FROM Login WHERE UserName=’admin’ AND Password=’123456’
  以用户名和密码来查询用户信息来判断是否存在该用户,但如果我更改输入内容,将userName改为:admin’—,则sql语句将变为:
  SELECT COUNT(*) FROM Login WHERE UserName=’admin’– Password=’123’
  因为UserName值中输入了“–”注释符,后面语句被省略而登录成功。
  以这样方式执行后的sql,已经违背原程序所执行的意图,用户输入数据,意外变成了代码被执行,针对于SQL注入,则是用户提交的数据,被数据库系统编译而产生了开发者预期之外的动作。也就是,SQL注入是用户输入的数据,在拼接SQL语句的过程中,超越了数据本身,成为了SQL语句查询逻辑的一部分,然后这样被拼接出来的SQL语句被数据库执行,产生了开发者预期之外的动作。
  2.3 sql注入攻击的防范措施
  Sql注入问题已经由来已久,但现在仍会发现大量sql注入攻击的发生,这是因为框架不完善,程序员没有意识拼接sql所造成安全性问题,遗留老系统的更改的难度等等问题。
  以下就是几种防范sql注入发生的方法:
  2.3.1 对用户输入数据进行检查和过滤
  永远也不要相信用户输入,输入验证假定所有输入都是恶意的,用户的输入是未知的,但我们可以引导我们的用户,按照系统要求去输入合法的数据。
  程序所需要做的,前端后端双重验证,由于前端验证很容易绕过,所以后端验证也是必须要的。
  2.3.1.1 SpringMVC拦截器防止SQL注入
  在用户输入的数据传输到后台逻辑代码之前,拦截到该请求,并对该请求中的用户输入进行转义处理。

以上是“[web安全]Web应用漏洞攻击分析与防范”的部分内容,想要了解更多更详细的web安全信息,请多多关注i春秋网络安全学院。更多精彩内容为你推荐。同时可以扫描下方二维码随时关注最新信息。

[web安全]Web应用漏洞攻击分析与防范