如何在不使用cfqueryparam的情况下编码/转义varchar以更安全?

Hen*_*nry 3 coldfusion cfqueryparam

如何在不使用cfqueryparam的情况下编码/转义varchar以更安全?我想实现相同的行为,而不是<cfqueryparam>用来解决"在这个RPC请求中提供的参数太多.最大值是2100"的问题.请参阅:http://www.bennadel.com/blog/1112-Incoming-Tabular-Data-Stream-Remote-Procedure-Call-Is-Incorrect.htm

更新:

  • 我想要验证/安全部分,而不生成预准备语句.
  • 什么是我能对varchar里面做的最强的编码/转义<cfquery>
  • mysql_real_escape_string()可能类似的东西?

小智 6

正如其他人所说的那样,与长度相关的错误起源于更深层次,而不是在queryparam标记内.它提供了一些有价值的保护,因此存在是有原因的.

您可以随时将这些值插入临时表并与该表联接,或使用列表函数将该巨大列表拆分为几个较小的列表,然后单独使用.

SELECT name , 
       ..... , 
       createDate
FROM somewhere
WHERE (someColumn IN (a,b,c,d,e)
       OR someColumn IN (f,g,h,i,j)
       OR someColumn IN (.........));
Run Code Online (Sandbox Code Playgroud)