网站攻击主要分为以下几类:
(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春秋网络安全学院。更多精彩内容为你推荐。同时可以扫描下方二维码随时关注最新信息。
原文链接:https://www.cnblogs.com/ichunqiu/p/6031220.html
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/17867