标签: cfqueryparam

如何以编程方式清理ColdFusion cfquery参数?

我继承了一个大型的传统ColdFusion应用程序.这里有数百个<cfquery>某些sql #variable#</ cfquery>语句,需要按照以下方式进行参数化:<cfquery>这里有一些sql <cfqueryparam value ="#variable#"/> </ cfquery>

如何以编程方式添加参数化?

我曾考虑过编写一些正则表达式或sed/awk'y类型的解决方案,但似乎有人在某个地方解决了这个问题.为自动推断sql类型而获得的奖励积分.

coldfusion sql-injection cfquery cfqueryparam

3
推荐指数
2
解决办法
2909
查看次数

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

如何在不使用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()可能类似的东西?

coldfusion cfqueryparam

3
推荐指数
1
解决办法
621
查看次数

使用CFQUERYPARAM在SQL中指定表/列名

我需要动态构造一组 JOIN 语句,其中表名和列名是从另一个 ColdFusion 查询传入的。将字符串值传递到语句中时,CFQUERYPARAM 在其周围添加单引号 - 这是 CFQUERYPARAM 要点的一部分。鉴于这会破坏 SQL 语句,在这种情况下不使用 CFQUERYPARAM 而是确保传入的查询被清理是否可以接受,或者是否有办法允许使用 CFQUERYPARAM?(我可以使用 Fusebox 中的电路/熔丝权限锁定这些代码片段。)

谢谢。

sql coldfusion cfqueryparam

2
推荐指数
1
解决办法
1611
查看次数

如何在使用ValueList生成的cfparam VARCHAR列表中转义逗号?

假设有一个SQL表 Fruit

id | name
--- ------
 1 | 'apples'
 2 | 'pears'
 3 | 'kiwi'
 4 | 'bananas, peaches and plumbs'
Run Code Online (Sandbox Code Playgroud)

鉴于以下查询

<cfquery name="qAllFruit" datasource="#DSN#">
    SELECT name FROM Fruit
</cfquery>
<cfquery name="qLeftoverFruit" datasource="#DSN#">
    SELECT name FROM Fruit
     WHERE name NOT IN (<cfqueryparam CF_SQL_TYPE="CF_SQL_VARCHAR" 
                                      value="#ValueList(qAllFruit.name)#" 
                                      list="yes" />)
</cfquery>
Run Code Online (Sandbox Code Playgroud)

然后qLeftoverFruit将错误地返回1行:bananas, peaches and plumbs因为扩展cfqueryparam列表被错误地解释:

WHERE name NOT IN ('apples','pears','kiwi','bananas','peaches and plumbs')
Run Code Online (Sandbox Code Playgroud)

有没有办法在仍然使用cfqueryparam标签时纠正这个问题ValueList

更新以下是您可以用来重现此问题的要点:http://gist.github.com/a642878c96b82b21b52c

coldfusion cfquery cfqueryparam coldfusion-8

2
推荐指数
1
解决办法
1239
查看次数

cfldap允许cfqueryparam吗?

我想防止SQL注入攻击.我们有一个表单,要求用户的AD用户名和密码.然后我们的处理代码看起来像这样:

<cfldap name="ldap_result" action="query" server="999.999.999.999" 
attributes="userprincipalname,title,samaccountname,sn,name,mail,cn" 
filter="(&(objectclass=user)(sAMAccountName=#form.username#))"
start="dc=us,dc=company,dc=lan"
scope="subtree"
username="US\#form.username#" 
password="#form.password#">
Run Code Online (Sandbox Code Playgroud)

如果没有cfqueryparam,我将永远不会使用用户输入运行查询(包装用户名和密码输入),但这样的内容甚至可用于cfldap?(如果这有所不同,我们将使用CF10.)

更新:

为了澄清,当我尝试这个时,我得到以下错误:

标记CFLDAP的属性验证错误.它不允许属性CFSQLTYPE,VALUE.

coldfusion cfqueryparam coldfusion-10

2
推荐指数
1
解决办法
223
查看次数

cf_sql_longvarchar切断了从coldfusion到sql 2008的变量​​保存

cf_sql_longvarchar我可以增加一个字符限制,或者可能是另一种选择吗?它似乎被切断为43,479个字符或大约40-45 kb.

coldfusion cfqueryparam

2
推荐指数
1
解决办法
660
查看次数

ColdFusion 9为cfqueryparam设置十进制类型?

我有几个表单字段,用户可以输入whole数字,decimal数字和两种类型可以是正面或负面.换句话说,他们可以输入这样的东西:

1 or 0.9 or 5.6745 or -10 or -0.9 or -10.5435
Run Code Online (Sandbox Code Playgroud)

我想知道我应该cfqueryparam在cfsqltype上使用什么?我尝试了十进制,但看起来在ColdFusion 9中不支持.有没有其他选项或我应该使用varchar

coldfusion cfqueryparam decimal coldfusion-9

2
推荐指数
1
解决办法
150
查看次数

在Minfusion中比较DateTime值,而在Coldfusion CFQUERY中比较Day

这是我的查询.

<cfquery name="qryname" datasource="dsn">
UPDATE ticketlist
SET status  = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="Expired"> 
WHERE expdatetime < 
<cfqueryparam value = "#yourDate#" cfsqltype = "CF_SQL_DATE" maxLength = "19">
</cfquery>
Run Code Online (Sandbox Code Playgroud)

它能够给我所有结果,他们的expdatetime小于#yourdate#,唯一的问题是它只显示结果谁的差异是一整天,但不是那些差异在最小.因此,expdatetime的差异小于#thertime#by min's将不会显示在结果中,除非差异至少为一天.

如何针对最小精度优化此查询?

我知道两个可能有用的函数,DateDiff和DateCompare,但我不知道如何在查询中应用它们.

DateDiff("datepart","date1","date2")

DateCompare("date1","date2"[,"datePart"])

DatePart精确度

* s Precise to the second
* n Precise to the minute
* h Precise to the hour
* d Precise to the day
* m Precise to the month
* yyyy Precise to the year
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

mysql coldfusion cfquery cfqueryparam

1
推荐指数
1
解决办法
580
查看次数

Coldfusion8参数索引超出范围错误

我做了一些蠢事,但我不知道它是什么,有人能指出我为什么会收到这个错误:

Parameter index out of range (1 > number of parameters, which is 0). 
Run Code Online (Sandbox Code Playgroud)

从这段代码,

这种形式:

<form id="form1" name="form1" method="post" action="?template=/Assets/Plugins/AmericanSurcharges/index.cfm&action=add" class="inputform">
    <tr>
        <td>
            <select name="datamonth">
                <option value=""></option>
                <cfloop from="1" to="12" step="1" index="i">
                    <cfset option = monthasstring(i) /> 
                    <option value="#i#" >#option#</option>
                </cfloop>
            </select>

        </td>
        <td><input name="201data" type="text" id="201" size="6" maxlength="7" value="" class="data" /></td>
        <td><input name="301data" type="text" id="301" size="6" maxlength="7" value="" class="data" /></td>
        <td><input name="304data" type="text" id="304" size="6" maxlength="7" value="" class="data" /></td>
        <td><input name="316data" type="text" id="316" size="6" maxlength="7" value="" class="data" /></td> …
Run Code Online (Sandbox Code Playgroud)

coldfusion cfqueryparam

1
推荐指数
1
解决办法
862
查看次数

Coldfusion:执行包含cfqueryparam的动态查询

一,代码.我正在制作一个查询结构:

<cfset myQueryStruct = { 
qone = "select * from t1 where column = <cfqueryparam cfsqltype='cf_sql_varchar' value='#arguments.a1#'>",
qtwo = "select * from t2 where column = <cfqueryparam cfsqltype='cf_sql_varchar' value='#arguments.a1#'>"
}>
Run Code Online (Sandbox Code Playgroud)

我需要动态执行查询,如下所示:

<cfquery name="qName" datasource="#dsn#">
    #myQueryStruct[arguments.type]#
</cfquery>
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

Error Executing Database Query.
[Macromedia][SQLServer JDBC Driver][SQLServer]Incorrect syntax near '<'. 
Run Code Online (Sandbox Code Playgroud)

似乎错误与<cfqueryparam cfsqltype='cf_sql_varchar' value='#arguments.a1#'>查询中的" "("<")有关

我尝试使用evaluate()并收到此错误:

Invalid CFML construct found on line 1 at column 15.
ColdFusion was looking at the following text:

t1
Run Code Online (Sandbox Code Playgroud)

我知道我们可以通过<cfif>在里面使用梯子来做到这一点,<cfquery>我的问题是,我们可以像我提到的那样 …

coldfusion refactoring cfquery cfqueryparam

1
推荐指数
1
解决办法
351
查看次数

cfqueryparam 从输入复选框传入列表

我有一个输入复选框字段,用户可以在其中选择表单中的多个复选框,并且根据他们选择的内容,它将创建一个 id 字符串,如 10、14、35、47,并将其提交到数据库。如果我直接提交它,我可以提交这个,如下所示:

user_job_type_id="#form.user_job_type_id#",
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试将它包装在 cfqueryparam 中,我宁愿这样做以使其更安全,无论我做什么,我都会收到错误消息。无论我是否将它设置为列表 true 或 false、varchar、integer,一切都会引发错误,例如 cfqueryparam 不接受列表。

例如,下面将不起作用

user_job_type_id=<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#form.user_job_type_id#" list="Yes"/>,
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

coldfusion cfquery cfqueryparam

1
推荐指数
1
解决办法
50
查看次数

<cfqueryparam>显示"?" 而不是数字

这是我的coldfusion代码:

    SELECT
        MIN(legacy_sale_id) AS legacy_sale_id ,
        cc_id                   ,  
        ??_name                 ,
        sales_rep_name                        ,
        original_sale_id                      ,
        ls.id           ,
        <cfif ARGUMENTS.is_export neq 0>
            CASE site_id 
              WHEN 4 THEN 'EU' 
            END as site_id, 
        <cfelse>
        site_id                               ,
        </cfif>
        gp_order                              ,
        SUM(item_price_usd      * qty) AS value_usd,
        SUM(item_price_original * qty) AS value_original,
        co.total_sales_orders
    FROM
        ls
    LEFT JOIN  cc
     ON
        cc.company_id = ls.id
    LEFT JOIN
        (
            SELECT
                 company_id,
                COUNT(ll.id) AS total_sales_orders
            FROM
                ls ll
            WHERE
                cc_id IS NOT NULL
            AND site_id IN (1,4)  
            GROUP BY
                cc_id
        ) co …
Run Code Online (Sandbox Code Playgroud)

sql-server coldfusion cfqueryparam

0
推荐指数
1
解决办法
85
查看次数