首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在cfquery中使用SQL变量的最佳实践

在cfquery中使用SQL变量的最佳实践
EN

Stack Overflow用户
提问于 2013-07-14 06:15:34
回答 1查看 920关注 0票数 1

如果我有一个带有SQL代码(如#PreserveSingleQuotes(arguments.sql)# )的变量

  1. 运行此代码的最佳方法是什么?
  2. 如果SQL注入攻击是可能的,是否有一种方法来运行?

这个问题是Variable as SQL in cfquery的后续问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-14 10:48:10

#1是个有趣的问题,因为你手头没有太多的选择。从ColdFusion的角度来看,您可以通过<cfquery>Query.cfc运行它。另外,DB系统将能够接受包含SQL的字符串并执行它,但这实际上只是将问题从CF稍微抽象到DB。我不确定还有别的选择。

至于#2,在使用<cfquery>时,这是一个大问题,因为没有好的(或者至少是合理的)方法来减少SQL注入(当然也没有优化SQL编译过程的方法),因为参数化语句中的值的唯一方法是通过<cfqueryparam>,而且不能将这些方法嵌入到充满SQL的字符串中。这里的解决方案是使用Query.cfc (我不认为我建议使用Query.cfc,因为它是CFML语言( IMO)中实现最糟糕的部分),因为您可以在SQL字符串中指定位置参数或命名参数,并分别传递参数值。

最后,您应该始终将值作为参数传递,而不是在SQL语句中手动编码它们,如果这意味着不为SQL语句使用预先创建的字符串,那么就这样吧。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17637024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档