Entity Framework関数は、注入から保護するために入力を自動的にエスケープしますか?
私のSQLDBレイヤーには、nvarchar(max)
入力として受け取るSPROCがあります。私のEDMXでは、methodName(string input)
インジェクションから保護するために入力を手動でエスケープする必要があるので、SPROCは関数インポートにマップされますか、それともEntity Frameworkはこれを自動的に行いますか?
Entity Framework関数は、注入から保護するために入力を自動的にエスケープしますか?
私のSQLDBレイヤーには、nvarchar(max)
入力として受け取るSPROCがあります。私のEDMXでは、methodName(string input)
インジェクションから保護するために入力を手動でエスケープする必要があるので、SPROCは関数インポートにマップされますか、それともEntity Frameworkはこれを自動的に行いますか?
依存します...
EFは入力をエスケープするので、ほとんどの場合安全です。
ただし、入力を使用してプロシージャ内に動的SQLを作成したり、入力を使用して別の関数やプロシージャを呼び出したりした場合でも、SQLインジェクション攻撃を受ける可能性があります。
SQLインジェクションを防ぐには、実行パスの最後の部分をたどり、入力が検証されていることを確認する必要があります。
ストアドプロシージャを使用するだけで、後で実行されるストアドプロシージャで動的SQLを構築する場合を除いて、入力をエスケープする必要はありません。