WEB应用脆弱性防止策略 常见的16种WEB攻击以及解决方案

所属分类: 网络安全 / 安全设置 阅读数: 215
收藏 0 赞 0 分享

事实上,WEB应用是很脆弱的。因为这种应用的灵活性很大,用户输入的自由度也很高,所以对于WEB应用的恶意攻击也比较容易。
本文对常见的16种WEB攻击,给出了部分解决方案。
1. SQL注入(SQL Injection)
对于固定的SQL语句,一般在应用程序层不做处理,推荐添加一个包装类,把这些固定的SQL操作控制起来。
而对于动态生成的SQL语句,就需要对用户的输入进行处理,一般的处理是把【'】转换成【“】 。
如:
       abc”def”ghi’jkl’mno →abc”def”ghi’’jkl’’mno
2. 跨站点脚本攻击(XSS,Cross Site Scripting)
如果用户输入,URL参数在页面上表示时,必须对特殊文字进行过滤处理。
   2-1 如果用户输入和URL参数中含有下列敏感文字,则删除 之:
                           Script  Object Embed Applet
   2-2 如果用户输入和URL参数中含有下列敏感文字,则转换 之:
            &    →    &
            <    →    &lt;
            >    →    &gt;
            “     →    &quot;
            ‘      →    &#39;
3. 操作系统命令注入(OS Command Injection)
  要尽量避免执行系统命令,如果非使用不可的话,要对以下的用户输入或者参数做处理:
        | ! & `      命令执行总要使用的字符
        “ ‘            字符串的区分字符
        / -            命令参数指定时使用的字符
        “. / ¥       目录指定时使用的字符
        < >          文件操作是使用的字符
        $             环境变量指定时使用的字符
        ( { [ ] } )   命令间的区分字符
4. 换行字符注入(Line Feed Code Injection)
   在用户的输入信息中,检查是否不包含【0x0d】【0x0a】 这种换行的输入。
5. LDAP注入(LDAP Injection)
   在LDAP使用的场合,要检查用户输入信息中,是否不包含下列LDAP的保留字:
    (    )     *    ¥    NULL
6. Xpath注入(XPath Injection)
   在XPath使用的场合,要检查用户输入信息中,是否不包含下列Xpath的保留字:
    <    >    “    ‘    &
7. SSI注入(SSI Injection)
    检查用户输入中,是否不包含SSI相关的危险关键字。
8. 目录遍历(Directory Traversal)
    检查用户输入中,是否不包含访问文件系统的特殊文字【/】 和【\】 。
9. 强制浏览(Forced Browsing)
    这种攻击的防止比较复杂,一般的策略是:
 验证请求是否是从合法的页面发送而来的,一般是检查请求的Referer。
 用户授权控制,认证认可
   对于静态资源来说,WEB程序是无法防止这种强制浏览攻击的,只有通过设置中间件(如WEB服务器)来防止:
 对公开化网站目录的设定(比如在站点目录下禁止显示文件列表)
 在URL中指定目录的时候,必须提供index文件(如index.html等)
 对于下载文件的存放位置,要特别谨慎的设置
10. 跨站点请求伪装(Cross Site Request Forgery)
    明确页面的操作流程,对于不符合操作流程而来的请求进行过滤。
11. 不正确的文件和目录分配(Invalid Allocation of Files and Directories)
  不公开的配置文件,备份文件,数据文件等,不要在站点的公共目录(WebRoot或者www/htdocs)下存放
  WEB应用程序使用的库文件,不要再站点的公共目录下存放。
    适合在公共目录下存放的资源如下所示:
     /var/www/htdocs/
                        Img/
                        css/
                        data/
                        index.html
12. 不正确的错误处理(Invalid Error Handling)
    一定要进行错误处理,错误处理的消息要显示为用户可理解的内容,不要把中间件(WEB服务器)的错误消息显示出来。
13. 不必要的信息(Unnecessary Information)
    比如在用户登陆时,提示的这样的错误信息【用户密码不正确】,从侧面就说明了系统中存在一个叫做【userid】的用户。这就为恶意攻击者提供了情报。
    所以,在处理系统显示的消息是,点到为止,不能暴露多余的用户细节。
14. 后门和调试选项(Backdoor & Debug Option)
    避免特殊的密码输入和认证策略
    指定调试选项是,调试选项和程序的参数都可以改变和查看
    要做出测试专用的页面
    对于程序后门,可以通过代码复查力度强化来进行防止。
    而对于调试选择,要统一开发标准,使用统一的调试开关。
15. 客户端注释(Client Side Comment)
    对于WEB应用来说,客户端可以通过浏览器直接看到页面的代码。发送到浏览器的代码中,可以开发者的注释。对于恶意攻击者来说,这些注释信息会暴露出WEB应用的很多细节。
    比如说下面所说的注释就应该引起关注:
    对于请求参数的注释
    Javascript的内部逻辑的注释
    注释外的Javascript内部逻辑和URL请求
    对应策略如下:
    对于代码的注释,事先要有统一的代码规范
    尽量使用服务器端得注释标签,如JSP的【<%-- --%>】,这样的注释内容不会发送到客户端。
16. 缓冲区溢出(Buffer Over Flow)
    如果用户输入中包含了超过服务器缓冲区大小的输入,很可能会导致服务器存储不足,甚至导致服务器停机。
    对策如下:
    一定要检查用户输入的大小
    文件上传是,对于上传文件的大小进行检查和限制。

更多精彩内容其他人还在看

用IP安全策略自动设置工具的遇到故障与解决方法

我最新在服务器上使用了IP安全策略自动设置工具,服务器是web站点,开80,20,21,3389等。
收藏 0 赞 0 分享

分享几个WebSite网站防黑经验

分享几个WebSite网站防黑经验,站长朋友可以参考下。
收藏 0 赞 0 分享

在Windows 下关闭21\23\25端口的方法

在Windows 下关闭21\23\25端口的方法,有时候为了安全我们需要禁止一些端口
收藏 0 赞 0 分享

招你几教 让你防止电脑辐射

对于生活紧张而忙碌的人群来说,抵御电脑辐射最简单的办法就是在每天上午喝2至3杯的绿茶,吃一个橘子
收藏 0 赞 0 分享

教你把电脑屏幕设置成可以保护眼睛的颜色

我们知道,长期使用电脑,眼睛盯着屏幕会使眼睛非常干涩、疲劳,所以现在流行将电脑设置成可以保护眼睛的颜色。
收藏 0 赞 0 分享

家庭用路由器功能的详细介绍

现在的宽带路由器不少功能对于一般家庭用户来说确实非常实用,可以提高很多网络应用程序的执行效果。下面谈谈家用路由器所具备的功能,顺便告诉大家哪些功能比较实用、哪些功能意义不大。
收藏 0 赞 0 分享

你的路由要hold住 带宽提速时代

近日,工业和信息化部召开宽带普及提速工程动员部署大会,在会上宣布正式启动实施“宽带普及提速工程”,至此,我国备受关注和带宽提速开始了。
收藏 0 赞 0 分享

用路由器限制别人的网速的技巧

在学校里面每个寝室使用一根线在上网,如果有人在下载的话,导致网速变得很慢,有没有什么办法可以限制别人的网速,来限制下载速度呢。当然是可以的,下面笔者来教我们怎么去限制别人的网速来限制别人下载的速度。
收藏 0 赞 0 分享

路由器与路由器互相连接详细设置图文教程

本文将为大家详细讲述路由接路由的设置方法,下面以图示先标明局域网各路由间的接法:
收藏 0 赞 0 分享

家用无线路由器安全设置必读

伴随着各运营商的宽带大提速,无线已经成为家庭组网的首选。老百姓真真切切地感觉到:无线真好!而且各厂商的在无线路由器的设置上也尽力做到人性化,以帮助大叔大妈们也能轻松的设置家庭无线网络,但一提到如何让家里的无线网络更加安全?很多大妈又犯了难,认为安全防护
收藏 0 赞 0 分享
查看更多