网站防黑解决对策

4/8/2013 3:08:22 AM

  问题一、跨站脚本(XSS)

  利用一个白名单来验证接到的所有数据,来自白名单之外的数据一律拦截。另外,还可以对所有接收到的数据进行编码。验证机制可以检测攻击,编码则可以防止其他恶意攻击者在浏览器上运行的内容中插入其他脚本。

  问题二、注入漏洞

  尽可能不要使用转换器。如果你必须使用转换器,那么,避免遭受注入攻击的最好方法是使用安全的API,比如参数化指令和对象关系映射库。

  问题三、恶意文件执行

  不要将用户提供的任何文件写入基于服务器的资源,比如镜像和脚本等。设定防火墙规则,防止外部网站与内部系统之间建立任何新的连接。

  问题四、不安全的直接对象参照物

  利用索引,通过间接参照映射或者另一种间接法来避免发生直接对象参照物泄密。如果你不能避免使用直接参照,那么在使用它们之前必须对网站访问者进行授权。

  问题五、跨站指令伪造

  不要依赖浏览器自动提交的凭证或者标识。解决这个问题的唯一方法是使用一种浏览器不会记住的自定义标识。

  问题六、信息泄露和错误处理不当

  利用测试工具,比如OWASP的WebScarab Project等来查看应用软件出现的错误信息。未通过这种方法进行测试的应用软件几乎肯定会出现意外错误信息。

  另一个方法是:禁止或者限制在错误处理中使用详细信息,不向用户显示调试信息。

  问题七、不安全的认证和会话管理

  通信与认证证书存储应确保安全性。传输私人文件的SSL协议应该是应用软件认证系统中的唯一选择,认证证书应以加密的形式进行保存。

  另一个方法是:除去认证或者会话管理中使用的自定义cookie。

  问题八、不安全的加密存储设备

  不要开发你自己的加密算法。最好只使用已经经过审批的公开算法,比如AES、RSA公钥加密以及SHA-256或者更好的SHA-256。另外,千万不要在不安全渠道上传送私人资料。

  问题九、不安全的通信

  在所有经过认证的连接上利用SSL,或者在敏感信息传输过程中使用SSL。SSL或者类似的加密协议应该加载在客户端、与在线系统有关的合作伙伴、员工和管理员账户上。利用传输层安全或者协议级加密系统来保护基础结构各部分之间的通信,比如网络服务器与数据库系统之间的通信。

  问题十、未对网站地址的访问进行限制

  不要以为用户们不知道隐藏的地址。所有的网站地址和业务功能都应受到一个有效访问控制机制的保护,这个机制可以检验用户的身份和权限。