Sql server 搜寻网站的保安措施

Sql server 搜寻网站的保安措施,sql-server,security,search,coldfusion,Sql Server,Security,Search,Coldfusion,几年前,我在ColdFusion中创建了一个杂志风格的网站。它有一个网站搜索功能,可以全文搜索(使用SQLServer)文章和博客文章。它工作得很好,但后来我们遭到了SQL注入攻击(我的错)。网站所有者决定停止搜索,直到最近才要求我让它重新上线 我知道我需要使用CFQUERYPARAM来停止SQL注入,我已经修复了代码的这一方面。我的问题是,我应该做些什么来保证网站搜索的安全性?我不是在说英雄措施,只是我不应该忘记的基本内容。谢谢。除了使用参数外,您还可以检查输入的奇怪文本(html代码、“标记

几年前,我在ColdFusion中创建了一个杂志风格的网站。它有一个网站搜索功能,可以全文搜索(使用SQLServer)文章和博客文章。它工作得很好,但后来我们遭到了SQL注入攻击(我的错)。网站所有者决定停止搜索,直到最近才要求我让它重新上线


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

除了使用参数外,您还可以检查输入的奇怪文本(html代码、“标记”等) 限制其长度(搜索不超过一定数量的字符是合理的)


在web上搜索文本清理

除了使用参数外,您还可以检查输入的奇怪文本(html代码、“标记”等) 限制其长度(搜索不超过一定数量的字符是合理的)


在web上搜索文本清理

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

另一件你应该小心的事情是避免拒绝服务。 我曾经看到一个atack,它是基于向一个站点发送愚蠢的查询,类似于“所有包含一封信的文本”之类的东西


限制每页的结果数是避免此类问题的一个好办法。

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

另一件你应该小心的事情是避免拒绝服务。 我曾经看到一个atack,它是基于向一个站点发送愚蠢的查询,类似于“所有包含一封信的文本”之类的东西


限制每页搜索结果的数量是避免此类问题的一个很好的选择。

我可以考虑的是检查搜索结果可访问的所有链接(可访问的cffunctions、fuseactions等)是否安全公开,或者是否被保护到必要的级别,例如:

我可以考虑的是检查搜索结果可访问的所有链接(可访问的CFFunction、fuseactions等)是否安全公开,或者是否被保护到必要的级别,例如:

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

      仅使用存储过程更改数据。 将数据库用户帐户限制为只能使用视图(您可以对其拥有只读权限) 将数据源设置为仅允许选择并执行(procs) 始终使用cfqueryparam 将查询放在cfc中,并始终使用正确的参数类型。 使用输入消毒剂检查要注入的字符串


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

      仅使用存储过程更改数据。 将数据库用户帐户限制为只能使用视图(您可以对其拥有只读权限) 将数据源设置为仅允许选择并执行(procs) 始终使用cfqueryparam 将查询放在cfc中,并始终使用正确的参数类型。 使用输入消毒剂检查要注入的字符串


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

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

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

      好列表。另外,不要忘记对标签等输入进行消毒。。。或者确保在将输入呈现回用户时至少使用HTMLEDITFORMAT()。良好列表。另外,不要忘记对标签等输入进行消毒。。。或者确保在将输入呈现回用户时至少使用HTMLEDITFORMAT()。