2010-12-10 15 views
0

言語/データベースの選択肢に、ユーザ入力をエスケープする組み込み関数(たとえば、mysql_real_escape_string)がある場合、SQLパラメータ化の引数は何ですか? mysql_real_escape_stringがある時点でアプリケーションを脆弱にする可能性はありますか?SQLのパラメータ化対エスケープ

私はパラメータ化を使用していると言いましたので、私はそれを読んだほうが良い方法ですが、私は盲目的に従うだけではありません。どんな洞察?ありがとう!

答えて

1

パラメータ化の引数はのパフォーマンスです。

次の文を複数回実行しようとしている場合:

insert into table (col1, col2) values (?, ?); 

をクエリは一度だけ(解析され、計画の分析と計算)が評価されようとしている、となりますので、それはパラメータを使用することをお勧めします何回も実行されます。

+0

セキュリティ上の観点から、パラメータ化は組み込みのエスケープ関数よりも利点がありません。 – Joseph

+0

毎回完全に値をエスケープすることを100%確信している場合は、それをパラメータと同じにする必要があります。 –

関連する問題