1
私はここでいくつかの質問をしましたが、SQLインジェクション可能なコードを使用するためにローストされました。ただし、サイトはオンラインではありませんが、私は今、する。SQLインジェクションcshtml
私は次のコードを使ってテストするためのテストページを作成しました。
var date = "2017-01-26";
var testQuery = "SELECT * FROM Test WHERE date = @0";
db.Execute(testQuery, date);
はこれまでのところ、ちょうどこのページを実行している、それは私にエラーを与えていないが、時間の、おそらく周りの99%が、私は私が私のデータを表示するためにforeach
を使用してデータベースから何かを選択します。
foreach (var c in db.Query(testQuery))
{
<a>@c.kg</a>
}
そして、このようにするforeachを追加することによって、それは私にエラーを与える:
A parameter is missing. [ Parameter ordinal = 1 ]
私が間違って何をしているのですか?そして、これはSQLインジェクションでさえ安全ですか? PS。これはMVCタイプのプロジェクトではありません。あなたのDBはEFコンテキスト、デフォルトのパラメータ名がp0
である場合
の2番目のパラメータとして
SqlParameter
を提供をする必要があります値はクエリ –
です。これは論理です。私はあなたの代わりにあなたの 'コントローラ'に配置し、あなたのビューにモデルとして送信することをお勧めします。しかしそれはあなたの問題とは関係ありません。それはちょっとしたメモです。 – smoksnes
@ IkramTurgunbaev-明らかに 'db.Execute'それを行う – Fabio