2008-09-11 8 views
4

ここで少し混乱します。 Microsoftは、パラメータ化がSQLインジェクション攻撃からデータベースを保護する最善の方法であると主張することができます。しかし、私はここで情報の2つの矛盾する情報源を見つける:VBScript/ASPでのパラメータの設定クラシックとADO

This pageは、ADOコマンドオブジェクトを使用すると言います。しかし、this pageは、コマンドオブジェクトがスクリプト作成に対して安全ではないと言います。私は、セキュリティ上の脆弱性のためにコマンドオブジェクトをVBScriptやJScriptで使用してはならないと読んでいるようですが、その記事を見つけることはできません。

私はここに何かを見逃していますか、またはこれらの2つの記事はお互いに矛盾しているようですか?

答えて

4

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

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

彼らが話している "安全"とSQL注入を防ぐ "安全"は、2つの異なるものです。 ADO Commandオブジェクトを使用してデータをパラメータ化する方法については、記事を参照してください。あなたはそれをするべきです。

そして、Microsoftはさらに、ここでこれを確認:

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

1

を私は「スクリプトを実行しても安全」だと思うが、「私たちはただ、いくつかのナイジェリアの王子から取得しWebページから実行されても安全」を意味します。コマンドオブジェクトはサーバー上で実行するのが安全でなければなりません。

でも、私の同僚はそれを信用しなかったので、私たちは基本的に同じことをした社内フレームワークを持っていました。

関連する問題