問題タブ [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.
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.
int('1 2')
->41276
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."
tsql - 2100 を超える値で IN を選択
2100 を超える値を選択するにはどうすればよいですか?
テーブルがセットアップされる方法のため、リンクされたサーバーと JOINS はオプションではありません。
これが実行されると、新しい多くのフィールドが渡されるため、エラーがスローされます。
coldfusion - 複数の cfqueryparam を使用すると、cfquery が結果を返さない
複数を使用cfquery
すると、ColdFusion で次のエラーが発生します。cfqueryparams
ただし、それらが使用されていないか、どちらか一方のみに限定されている場合、クエリは期待される結果を返します。
データは、次のような URL を介して渡されます。
クエリは有効なデータを使用して SQLPlus でテストされており、期待される結果も返されます。URL
この問題は、値がpost を介して渡され、正常に機能するため、値が渡された場合に限定されているように見えるFORM
ため、URL で何らかの方法で何かが壊れていると思われます。データとクエリがチェックcfdump
され、SQLPlus でクエリを実行するために使用されるものに対してすべてが正しいように見えます。
データベースのバックエンドは Oracle 11g であり、私の知る限り、関連するドライバーはすべて最新です。明らかな問題がすでにチェックされているように見えるので、ここで何が起こっているのかについての考え。
coldfusion - cfqueryparam を使用したクエリの ColdFusion ループ
ネストされたクエリでクエリをループしようとしています。私がこれまでに持っているコード:
私が抱えている問題は、cfqueryparam を動的にループしないことです。hashTableLatest から最初の値を取得するだけです。誰が私が間違っているのか教えてもらえますか? クエリをループして cfqueryparam を動的に変更するにはどうすればよいですか?
EDITED 単一のクエリで必要なすべての情報を取得するには:
上記の SQL は、必要なすべての情報を取得する必要があると思います。私が探している結果は、同じではないすべてのimageHashesを取得することです
mysql - Coldfusion MYSQL 日付クエリ パラメータが結果を返さない
コールドフュージョンのバグだと思われるものに出くわしました。
質問があります:
問題は、2 番目の日付変数を渡すと何も返されないことです。クエリ プレフィックス SQL とパラメータをコピーしてデータベースに直接クエリを実行すると、結果が返されます。それが機能しないのは、CFを通過したときだけです。2 番目の日付パラメーターを削除すると、正常に動作します。そして、2 番目の日付パラメーターを文字列に変換すると、機能します。
2 番目のパラメーターの値を now() に交換しようとしましたが、どちらも機能しません。
問題は、2 番目の日付パラメーターが日付型であるということです。
私は気づいていない明らかに間違ったことをしていますか?
startDate 変数と endDate 変数は、coldfusion の dateTime オブジェクトです。CallTime は、MariaDB の dateTime 列です。
tsql - クエリ オブ クエリで CFQUERYPARAM を使用する論理的な理由はありますか?
私は主にCFQUERYPARAM
SQL インジェクションを防ぐために使用します。Query-of-Queries (QoQ) はデータベースに触れないので、CFQUERYPARAM を使用する論理的な理由はありますか? cfsqltype
andに一致しない値がmaxlength
例外をスローすることはわかっていますが、これらの値はその前に検証済みであり、わかりやすいメッセージを表示する必要があります (UX の観点から)。
sql-server - SQL Server に渡されるクエリ パラメーターをクエリ テキストにコメントとして含めるにはどうすればよいですか?
SQL Server で実行中のクエリのパラメーターの値を取得できないため、sp_who2 を介して表示されるコメントの形式でパラメーター値をクエリに追加することを考えていました。たとえば、次のクエリがある場合:
送信する前にクエリにパラメーターを追加して、次のようにデータベースに渡されるようにします。
CFParam が渡されたパラメーターの配列を返すことは知っていますが、それはクエリ結果が返された後でのみです。クエリがデータベースに渡される前に、これを行うにはどうすればよいですか?
ありがとう!
coldfusion - 定数での cfqueryparam の使用
cfqueryparam
私たちは、SQL クエリで宗教的に使用します。
私の前任者の何人かは、変数ではなく直接値で使用する場合、少し熱心すぎたようです。
ではない
やり過ぎ?つまり、SQL インジェクションの可能性はありません。ここでバインド変数を使用しても、データベースのパフォーマンスが向上するとは思えません。そうするのも同じくらい合理的ではないでしょうか
?
cfqueryparam
それを使用する習慣を根付かせる以外に、そのような場合に使用する利点はありますか? デメリットはありますか?