一般现在常见的网站攻击方式

ql注入,xss攻击,csrf攻击,文件上传漏洞,访问控制。这些是一般网站容易发生的攻击方式,接下来我们一一分析它们是如何攻击以及防范的。


一、sql注入


<1>什么是sql注入?


        sql注入说的通俗一些就是用户在http请求中注入而已的代码,导致服务器使用数据库sql命令时,导致恶意sql一起被执行。


用户登录,输入用户名 zhangsan,密码 ‘ or ‘1’=’1 ,如果此时使用参数构造的方式,就会出现


  
  
  1. select * from user

   where name = 'zhangsan'    and password = '' or '1'='1'


 这样zhangsan用户没有密码也可以被登陆,如果用户注入的是操作表的sql,就有大麻烦了。


<2>怎么防范sql注入?


1.不用拼接 SQL 字符串


 2. 有效性检验。(前端后端都需要。第一准则,外部都是不可信的,防止攻击者绕过Web端请求)


 3过滤 SQL 需要的参数中的特殊字符。比如单引号、双引号。推荐几个函数mysql_real_escape_string()  addslashes()htmlentities() htmlspecialchars() strip_tags()  intval()


  4.限制字符串输入的长度。


二、xss攻击


<1>什么是xss攻击


       跨站点脚本攻击,指攻击者通过篡改网页,嵌入恶意脚本程序,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。


假设页面上有一个表单:


  
  
  1. <input  type="text" name="name" value="lisi"/>


如果,用户输入的不是一个正常的字符串,而是


  
  
  1. "/><script>alert("haha")</script><!-


此时,页面变成下面的内容,在输入框input的后面带上了一段脚本代码。

  
  
  1. <input  type="text" name="name" value="梁桂钊"/><script>alert("haha")</script><!-"/>


      这端脚本程序只是弹出一个消息框,并不会造成什么危害,攻击的威力取决于用户输入了什么样的脚本,只要稍微修改,便可使攻击极具攻击性。常见的就是用户一般在评论中或者反馈中使用xss。


<2>如何防范xss


同sql注入一样。可以限制输入字符串的长度,对HTML转义处理。将其中的”<”,”>”等特殊字符进行转义编码。


三、csrf攻击


<1>什么是csrf攻击


      跨站点请求伪造,指攻击者通过跨站请求,以合法的用户的身份进行非法操作。可以这么理解CSRF攻击:攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求。CRSF能做的事情包括利用你的身份发邮件,发短信,进行交易转账,甚至盗取账号信息。跨站点请求伪造,指攻击者通过跨站请求,以合法的用户的身份进行非法操作。可以这么理解CSRF攻击:攻击者盗用你的身份,以你的名义向第三方网站发送恶意请求。CRSF能做的事情包括利用你的身份发邮件,发短信,进行交易转账,甚至盗取账号信息。


<2>怎么防止csrf


1.  安全框架使用。比如yii lavarel等。

2.  token机制。在HTTP请求中进行token验证,如果请求中没有token或者token内容不正确,则认为CSRF攻击而拒绝该请求。

3. 验证码。通常情况下,验证码能够很好的遏制CSRF攻击,但是很多情况下,出于用户体验考虑,验证码只能作为一种辅助手段,而不是最主要的解决方案。

4.   referer识别。在HTTP Header中有一个字段Referer,它记录了HTTP请求的来源地址。如果Referer是其他网站,就有可能是CSRF攻击,则拒绝该请求。但是,服务器并非都能取到Referer。很多用户出于隐私保护的考虑,限制了Referer的发送。在某些情况下,浏览器也不会发送Referer,例如HTTPS跳转到HTTP。


四、文件上传漏洞


<1>什么是文件上传漏洞


       文件上传漏洞,指的是用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。比如用户上传一个可以关机的执行文件,你的损失就大发了。


<2>如何防范


1. 文件上传的目录设置为不可执行。

2. 判断文件类型。在判断文件类型的时候,可以结合使用MIME Type,后缀检查等方式。因为对于上传文件,不能简单地通过后缀名称来判断文件的类型,因为攻击者可以将可执行文件的后缀名称改为图片或其他后缀类型,诱导用户执行。

3. 对上传的文件类型进行白名单校验,只允许上传可靠类型。

4. 上传的文件需要进行重新命名,使攻击者无法猜想上传文件的访问路径,将极大地增加攻击成本,同时向shell.PHP.rar.ara这种文件,因为重命名而无法成功实施攻击。

5. 限制上传文件的大小。

6. 单独设置文件服务器的域名。


五、访问控制


即RBAC。现在一般网站都已经不存在这种问题了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值