网站搜索的安全措施

时间:2009-12-03 16:57:20

标签: sql-server security search coldfusion

多年前,我在ColdFusion编写了一个杂志式网站。它具有网站搜索功能,可以全文搜索(使用SQL Server)文章和博客文章。它工作正常,但后来我们遇到了SQL注入攻击(我的错)。网站所有者决定取消搜索,最近才让我重新开始搜索。

我知道我需要使用CFQUERYPARAM来停止SQL注入,并且我已经修复了代码的这个方面。我的问题是,我应该做些什么来使网站搜索合理安全?我不是在谈论英雄的措施,只是我不应该忘记的基本内容。感谢。

6 个答案:

答案 0 :(得分:7)

  • cfqueryparam
  • 围绕个别查询的错误处理
  • 通过<cferror>
  • 对网站进行错误处理
  • 限制在给定时间内来自特定IP的请求数的逻辑
  • 确保数据库用户帐户只能访问应该执行的特定操作
  • 确保搜索请求来自您的网站而非第三方的逻辑
  • 限制搜索结果的数量(使用分页)
  • 限制搜索输入长度(最多30?)

答案 1 :(得分:1)

仅使用存储过程来更改数据。 将数据库用户帐户限制为只能使用视图(您可以在其上拥有只读权限。) 将数据源设置为仅允许select和execute(procs) 始终使用cfqueryparam 在cfc中放置查询并始终使用正确的参数类型。 使用输入消毒剂检查注射用品。

当然#1备份您的数据库或定期备份!

答案 2 :(得分:0)

除了使用params之外,您还可以检查输入是否有奇怪的文本(html代码,'标签等...) 限制它的长度(搜索不会超过一定数量的字符是合理的)

在网上搜索文本清理

答案 3 :(得分:0)

您可以使用CFQUERYPARAM开始避免sql注入。

您应该注意的另一件事是避免拒绝服务atack。 我曾经看过一个基于向网站发送愚蠢查询的东西,比如“包含一封信的所有文本”和这类东西。

限制每页的结果数量是避免此类问题的良好替代方案。

答案 4 :(得分:0)

我能想到的还是检查搜索结果可访问的所有链接(可访问的cffunctions,fuseactions等)是安全的公开还是受保护到必要的级别,如:

答案 5 :(得分:0)

您还可以在搜索中添加验证码,以确保它是人为驱动的。然后,您将不会耗尽您的服务器或数据库,试图找到自动查询的答案。