このSQL注入証明はありますか?少なくとも、大丈夫ですか?私はこれをオンラインで手に入れましたので、本当に助けを得ることができました。私は現在かなりのプログラムを構築しており、支払いをしたいと思ったらログインページを追加することにしました。助けてください!私のコードはSQLインジェクションプルーフですか?
if (txt_UserName.Text == "" || txt_Password.Text == "")
{
MessageBox.Show("Please provide a Username and Password");
return;
}
try
{
// Create SqlConnection
SqlConnection con = new SqlConnection(cs);
SqlCommand cmd = new SqlCommand("Select * from tbl_Login where UserName = @username and Password = @password", con);
cmd.Parameters.AddWithValue("@username", txt_UserName.Text);
cmd.Parameters.AddWithValue("@password", txt_Password.Text);
con.Open();
SqlDataAdapter adapt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adapt.Fill(ds);
con.Close();
int count = ds.Tables[0].Rows.Count;
// If count is equal to 1, than show frmMain form
if (count == 1)
そうではありません。準備されたステートメントを使用する必要があります。それについては、SqlConnectorのドキュメントを参照してください。私は携帯電話に乗っているので、今すぐ完全な回答を投稿することはできません。 – SplittyDev
@SplittyDev準備されたステートメントは、これと比較してどのような保護を提供しますか?それはちょうど同じですが、準備ができています。この場合は役に立たないかもしれません。 –
注:この種のクエリにDataSetを使用することは非常に悪いことです。彼らは遅く、メモリが空いていて、単に 'DataReader'を使うほうが良いでしょう。 –