問題タブ [cfqueryparam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1028 参照

coldfusion - ColdFusion 9: int and type="numeric" nasty bug?

I've just experienced a behaviour that defies any logic and could potentially lead to serious issues and was wondering if it was a bug or if the behaviour was itended and what are the best practices to circumvent the issue? If it's a bug, is there a patch?

Here's the two wierd behaviours that when put together are a threat to any system's data integrity.

  1. int('1 2') -> 41276
  2. isValid('numeric', '1 2') -> true

Why? Well let's see...

Here, the type="numeric" arguments validation (which perhaps is based on the same algorithm as isValid?) doesn't throw with '1 2'. Even worse, cfqueryparam cfsqltype="cf_sql_integer" seems to be using int to convert the value which will end up being 41276.

In other words, deleteSomething('1 2') will delete the entity with id 41276 instead of throwing an exception since the value 1 2 is obviously not numeric.

Now, the only fix I thought of is to perform additionnal argument validation using isValid('integer', ... or a regular expression, but that's a real pain and besides, I never understood why they haven't implemented type="integer"?

Obviously, I also always made the false assumption that cfqueryparam type="cf_sql_integer" would validate that the value passed is a valid integer.

EDIT:

It seems that even isvalid('integer', ... is also not reliable as we can see in
Why isvalid("integer","1,5") = YES?

EDIT2:

I know that I could add additionnal arguments validation for every expected integer argument in every function, however that would require to fix a huge code base in my case and it's also very error-prone. It also makes the built-in argument validation completely useless in this case.

I would rather prefer a solution where I could create and apply an unofficial patch. Is that a realistic option? If so I would like to be pointed out in the right direction.

EDIT3: It doesn't solves all the problems, but CF11 added support for a strictNumberValidation application level configuration.

"Starting from ColdFusion 11, this function evaluates on a more strict basis. Setting this value to false makes the isValid function to behave in the older way. This setting effects cfargument, cfparam and cfform tags wherever integer & numeric validation is used. Based on this setting, the validation reflects in those tags as well."

0 投票する
1 に答える
384 参照

tsql - 2100 を超える値で IN を選択

2100 を超える値を選択するにはどうすればよいですか?

テーブルがセットアップされる方法のため、リンクされたサーバーと JOINS はオプションではありません。

これが実行されると、新しい多くのフィールドが渡されるため、エラーがスローされます。

0 投票する
1 に答える
277 参照

coldfusion - 複数の cfqueryparam を使用すると、cfquery が結果を返さない

複数を使用cfqueryすると、ColdFusion で次のエラーが発生します。cfqueryparamsただし、それらが使用されていないか、どちらか一方のみに限定されている場合、クエリは期待される結果を返します。

データは、次のような URL を介して渡されます。

クエリは有効なデータを使用して SQLPlus でテストされており、期待される結果も返されます。URLこの問題は、値がpost を介して渡され、正常に機能するため、値が渡された場合に限定されているように見えるFORMため、URL で何らかの方法で何かが壊れていると思われます。データとクエリがチェックcfdumpされ、SQLPlus でクエリを実行するために使用されるものに対してすべてが正しいように見えます。

データベースのバックエンドは Oracle 11g であり、私の知る限り、関連するドライバーはすべて最新です。明らかな問題がすでにチェックされているように見えるので、ここで何が起こっているのかについての考え。

0 投票する
1 に答える
272 参照

coldfusion - cfqueryparam を使用したクエリの ColdFusion ループ

ネストされたクエリでクエリをループしようとしています。私がこれまでに持っているコード:

私が抱えている問題は、cfqueryparam を動的にループしないことです。hashTableLatest から最初の値を取得するだけです。誰が私が間違っているのか教えてもらえますか? クエリをループして cfqueryparam を動的に変更するにはどうすればよいですか?

EDITED 単一のクエリで必要なすべての情報を取得するには:

上記の SQL は、必要なすべての情報を取得する必要があると思います。私が探している結果は、同じではないすべてのimageHashesを取得することです

0 投票する
1 に答える
584 参照

mysql - Coldfusion MYSQL 日付クエリ パラメータが結果を返さない

コールドフュージョンのバグだと思われるものに出くわしました。

質問があります:

問題は、2 番目の日付変数を渡すと何も返されないことです。クエリ プレフィックス SQL とパラメータをコピーしてデータベースに直接クエリを実行すると、結果が返されます。それが機能しないのは、CFを通過したときだけです。2 番目の日付パラメーターを削除すると、正常に動作します。そして、2 番目の日付パラメーターを文字列に変換すると、機能します。

2 番目のパラメーターの値を now() に交換しようとしましたが、どちらも機能しません。

問題は、2 番目の日付パラメーターが日付型であるということです。

私は気づいていない明らかに間違ったことをしていますか?

startDate 変数と endDate 変数は、coldfusion の dateTime オブジェクトです。CallTime は、MariaDB の dateTime 列です。

0 投票する
2 に答える
973 参照

tsql - クエリ オブ クエリで CFQUERYPARAM を使用する論理的な理由はありますか?

私は主にCFQUERYPARAMSQL インジェクションを防ぐために使用します。Query-of-Queries (QoQ) はデータベースに触れないので、CFQUERYPARAM を使用する論理的な理由はありますか? cfsqltypeandに一致しない値がmaxlength例外をスローすることはわかっていますが、これらの値はその前に検証済みであり、わかりやすいメッセージを表示する必要があります (UX の観点から)。

0 投票する
0 に答える
205 参照

sql-server - SQL Server に渡されるクエリ パラメーターをクエリ テキストにコメントとして含めるにはどうすればよいですか?

SQL Server で実行中のクエリのパラメーターの値を取得できないため、sp_who2 を介して表示されるコメントの形式でパラメーター値をクエリに追加することを考えていました。たとえば、次のクエリがある場合:

送信する前にクエリにパラメーターを追加して、次のようにデータベースに渡されるようにします。

CFParam が渡されたパラメーターの配列を返すことは知っていますが、それはクエリ結果が返された後でのみです。クエリがデータベースに渡される前に、これを行うにはどうすればよいですか?

ありがとう!

0 投票する
1 に答える
345 参照

coldfusion - 定数での cfqueryparam の使用

cfqueryparam私たちは、SQL クエリで宗教的に使用します。

私の前任者の何人かは、変数ではなく直接値で使用する場合、少し熱心すぎたようです。

ではない

やり過ぎ?つまり、SQL インジェクションの可能性はありません。ここでバインド変数を使用しても、データベースのパフォーマンスが向上するとは思えません。そうするのも同じくらい合理的ではないでしょうか

?

cfqueryparamそれを使用する習慣を根付かせる以外に、そのような場合に使用する利点はありますか? デメリットはありますか?