4

Entity Framework関数は、注入から保護するために入力を自動的にエスケープしますか?

私のSQLDBレイヤーには、nvarchar(max)入力として受け取るSPROCがあります。私のEDMXでは、methodName(string input) インジェクションから保護するために入力を手動でエスケープする必要があるので、SPROCは関数インポートにマップされますか、それともEntity Frameworkはこれを自動的に行いますか?

4

2 に答える 2

4

依存します...

EFは入力をエスケープするので、ほとんどの場合安全です。

ただし、入力を使用してプロシージャ内に動的SQLを作成したり、入力を使用して別の関数やプロシージャを呼び出したりした場合でも、SQLインジェクション攻撃を受ける可能性があります。

SQLインジェクションを防ぐには、実行パスの最後の部分をたどり、入力が検証されていることを確認する必要があります。

于 2012-06-19T20:06:43.973 に答える
2

ストアドプロシージャを使用するだけで、後で実行されるストアドプロシージャで動的SQLを構築する場合を除いて、入力をエスケープする必要はありません。

于 2012-06-19T18:58:50.817 に答える