web常见攻击手段和防范措施

一、SQL注入攻击

解决方案:

  1. 前端页面校验用户的输入数据(限制用户输入的类型、范围、格式、长度等)。

  2. 后端对提交的数据进行严格校验,数据存储时不要使用“+”号拼接sql,采用预编译sql,防止注入!

  3. 使用自定义错误页,防止用户通过服务器默认的错误页面找到服务器漏洞。

二、XSS跨站脚本攻击

攻击方式:基于DOM的XSS即通过浏览器来直接运行js脚本,无须提交服务器,从客户端的代码引起的。

如:其实就是发送一个合法的地址加自己的脚本,比如:www.xxx.com/search?wd=<script>...</script>

受害者点击的是www.xxx.com/search?wd=<script>...</script>链接,然后受害者的浏览网页就加入这个恶意代码。存储XSS攻击即通过输入框提交js脚本或者上传文件到服务器,从网站的数据库引起的攻击。反射XSS攻击即通过url提交js脚本到服务器,从受害人的请求发起引起的攻击。

目的:盗取用户的登陆账户密码,收集用户的cookie等敏感信息。

解决方案:后端输出页面的时候将参数进行转义。如:<script> 转义成 &lt;script&gt;过滤用户输入。

注意:xss攻击的地方很多,html、css、js都有可能会被注入威胁。

三、CSRF跨站请求伪造攻击

攻击方式:利用收集到的用户cookie或其他敏感信息,使用httpclient等工具模拟请求,盗取用户信息。

解决方案:验证HTTP Referer字段,服务器端生成一次性token,请求时验证token。

四、DoS攻击

攻击方式:Ping Flood攻击即利用ping命令不停的发送的数据包到服务器,占用服务器带宽,直到网络瘫痪。SYN Flood攻击即利用tcp协议原理,伪造受害者的ip地址,一直保持与服务器的连接,导致受害者连接服务器的时候拒绝服务。

解决方案:设置防火墙。使用阿里云高防IP。

五、ARP欺骗------常见的窃取资料的安全性问题

攻击方式:利用ARP欺骗,伪造成网关,让受害者的数据经过攻击者的电脑,从而抓取别人的用户信息。

解决方案:强烈要求数据必须加密传输,启动https协议。

六、中间人攻击(会话劫持)-----常见的窃取资料的安全性问题

攻击方式:劫持会话cookies,把受害者(A)与受害者(B)之间通信经过攻击者的电脑。(常见于在线聊天系统)

解决方案:用户进行二次验证,随机产生会话ID,会话cookies设置httponly。

PS:cookies有两种。

会话cookies : 建立会话的cookies,关闭浏览器失效。

持久性cookies: 持久保存本地的cookies,到期失效。

会话cookies != session    

cookies会受到XSS,CSRF攻击。(把恶意代码存放到cookies里面)

七、其他注意的点

限制上传文件的类型和权限,防止用户上传jsp和服务器脚本!

删除服务器默认的示例demo,如tomcat下的webapps下的默认文件!

关注使用到的技术的更新,如:struts2的远程执行漏洞。及时更新到bug fixed版本。

捐助共勉
版权声明:若无特殊注明,本文皆为原创,转载请保留文章出处。