4

私はここで少し混乱しています。私が知る限り、Microsoftは、パラメータ化がSQLインジェクション攻撃からデータベースを保護するための最良の方法であると主張しています。しかし、私はここで2つの矛盾する情報源を見つけました。

このページでは、ADOコマンドオブジェクトを使用するように指示されています。しかし、このページには、コマンドオブジェクトはスクリプトに対して安全ではないと書かれています。セキュリティの脆弱性のためにコマンドオブジェクトをVBScriptまたはJScriptで使用すべきではないことをどこかで読んだことを思い出しているようですが、その記事を見つけることができないようです。

私はここで何かが足りないのですか、それともこれら2つの記事は互いに矛盾しているように見えますか?

4

2 に答える 2

4

ここで間違っている可能性がありますが、これは誰かが Command オブジェクトを使用して悪いことをする可能性があることを意味していると思います。つまり、他の誰かがスクリプトを作成している場合は信頼できません。

この記事の安全なスクリプトを参照してください。このフレーズについてオンラインで話すすべてのインスタンスは、ActiveX コントロールを「このコントロールは I/O を行わないか、送信元のサーバーとのみやり取りする」とマークしているように参照しますが、Command オブジェクトはそれを行いません。安全でない可能性のある多くのことを行うために使用できます。

彼らが話している「安全」と、SQL インジェクションを防ぐための「安全」は 2 つの異なるものです。ADO Command オブジェクトを使用してデータをパラメーター化する方法に関する記事は、まさに的を射ています。あなたはそれをすべきです。

そして、Microsoft はさらにここでこれを確認します。

http://msdn.microsoft.com/en-us/library/ms676585(v=VS.85).aspx

于 2008-09-11T21:21:19.937 に答える
1

「スクリプトを実行しても安全」とは、「ナイジェリアの王子から取得したばかりの Web ページから安全に実行できる」ことを意味すると思います。コマンド オブジェクトは、サーバー上で安全に実行できる必要があります。

職場では、当時、同僚はそれを信頼していなかったので、基本的に同じことを行う社内のフレームワークがありました.

于 2008-09-11T21:25:21.347 に答える