或者

网站漏洞解决方案

作者:月光边境 浏览:163 发布时间:2018-03-08
分享 评论 0

SQL注入漏洞:
  1.解决SQL注入漏洞的关键是对所有来自用户输入的数据进行严格检查、对数据库配置使用最小权限原则
  2.所有的查询语句都使用数据库提供的参数化查询接口,参数化的语句使用参数而不是将用户输入变量嵌入到SQL语句中。
  3.对进入数据库的特殊字符('"\<>&*;等)进行转义处理,或编码转换。
  4.确认每种数据的类型,比如数字型的数据就必须是数字,数据库中的存储字段必须对应为int型。
  5.数据长度应该严格规定,能在一定程度上防止比较长的SQL注入语句无法正确执行。
  6.网站每个数据层的编码统一,建议全部使用UTF-8编码,上下层编码不一致有可能导致一些过滤模型被绕过。
  7.严格限制网站用户的数据库的操作权限,给此用户提供仅仅能够满足其工作的权限,从而最大限度的减少注入攻击对数据库的危害。
  8.避免网站显示SQL错误信息,比如类型错误、字段不匹配等,防止攻击者利用这些错误信息进行一些判断。
  9.在网站发布之前建议使用一些专业的SQL注入检测工具进行检测,及时修补这些SQL注入漏洞。
  XSS跨站脚本漏洞:
  1.假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的Cookie中的变量,HTTP请求头部中的变量等。
  2.不要仅仅验证数据的类型,还要验证其格式、长度、范围和内容。
  3.不要仅仅在客户端做数据的验证与过滤,关键的过滤步骤在服务端进行。
  4.对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。
  5.在网站发布之前建议测试所有已知的威胁。
  页面存在源代码泄露:
  1. 配置好服务端语言解析,防止解析失败而导致源码泄露;
  2. 关闭网站错误调试机制,防止因为报错而导致源码泄露。
  网站存在备份文件:删除检测出的备份文件,或者将这类文件从网站目录下移走。
  网站存在包含SVN信息的文件:删除网站目录下的SVN信息,不要使用SVN目录作为网站的目录。
  网站存在Resin任意文件读取漏洞:删除resin_doc相关目录与文件。
  网站存在目录浏览漏洞:关闭Web容器(如IIS/Apache等)的目录浏览功能,比如:
  1.IIS中关闭目录浏览功能:在IIS的网站属性中,勾去“目录浏览”选项,重启IIS;
  2.Apache中关闭目录浏览功能:打开Apache配置文件httpd.conf,查找 “Options Indexes FollowSymLinks”,修改为“ Options -Indexes”(减号表示取消),保存退出,重启Apache。
  网站存在PHPINFO文件:删除检测出的PHPINFO文件。
  网站存在服务器环境探针文件:删除检测出的探针文件,比如:iprober.php、phpcheck.php、jspcheck.jsp、DotNetInfo.aspx、aspcheck.asp等。
  网站存在日志信息文件:删除检测出的日志信息文件。
  网站存在JSP示例文件:删除JSP示例文件。
  页面上存在数据库信息:关闭数据库的错误调试机制,防止因为SQL语句错误导致数据库报错信息显示到页面上。
  页面上存在网站程序的调试信息:关闭网站程序的调试机制,这个机制经常被用于网站的测试调试,该机制能显示出很详细的网站报错信息。
  网站存在后台登录地址:
  1.将后台登录地址隐藏,改个不容易猜到的路径;
  2.配置好后台登录地址的访问权限,比如只允许某个IP或IP段的用户访问。
  网站存在服务端统计信息文件:删除检测出的服务端统计信息文件。
  网站存在敏感目录:这些目录经常用于存放敏感的文件,可以考虑从网站目录中分离出,或改个不易猜测到的路径,并配置好访问权限。