也想出现在这里? 联系我们

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

作者 : 小编 本文共2102个字,预计阅读时间需要6分钟 发布时间: 2021-06-10 共3.98K人阅读
也想出现在这里? 联系我们

事实上,WEB应用是很脆弱的。因为这种应用的灵活性很大,用户输入的自由度也很高,所以对于WEB应用的恶意攻击也比较容易。本文对常见的16种WEB攻击,给出了部分解决方案。1. SQL注入(SQL Injection)对于固定的SQL语句,一般在应用程序层不做处理,推荐添加一个包装类,把这些固定的SQL操作控制起来。而对于动态生成的SQL语句,就需要对用户的输入进行处理,一般的处理是把【\’】转换成【“】 。如: abc”def”ghi’jkl’mno →abc”def”ghi’’jkl’’mno2. 跨站点脚本攻击(XSS,Cross Site Scripting)如果用户输入,URL参数在页面上表示时,必须对特殊文字进行过滤处理。 2-1 如果用户输入和URL参数中含有下列敏感文字,则删除 之: Script Object Embed Applet 2-2 如果用户输入和URL参数中含有下列敏感文字,则转换 之: & → &amp; < → &lt; > → &gt; “ → &quot; ‘ → '3. 操作系统命令注入(OS Command Injection) 要尽量避免执行系统命令,如果非使用不可的话,要对以下的用户输入或者参数做处理: | ! & ` 命令执行总要使用的字符 “ ‘ 字符串的区分字符 / – 命令参数指定时使用的字符 “. / ¥ 目录指定时使用的字符 < > 文件操作是使用的字符 $ 环境变量指定时使用的字符 ( { [ ] } ) 命令间的区分字符4. 换行字符注入(Line Feed Code Injection) 在用户的输入信息中,检查是否不包含【0x0d】【0x0a】 这种换行的输入。5. LDAP注入(LDAP Injection) 在LDAP使用的场合,要检查用户输入信息中,是否不包含下列LDAP的保留字: ( ) * ¥ NULL6. 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.html12. 不正确的错误处理(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) 如果用户输入中包含了超过服务器缓冲区大小的输入,很可能会导致服务器存储不足,甚至导致服务器停机。 对策如下: 一定要检查用户输入的大小 文件上传是,对于上传文件的大小进行检查和限制。

1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » WEB应用脆弱性防止策略 常见的16种WEB攻击以及解决方案

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html

发表评论

Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
开通VIP 享更多特权,建议使用QQ登录