この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 19901|答える: 0

[通信] C# winformはSQLインジェクションを防止します

[リンクをコピー]
掲載地 2015/01/29 10:12:59 | | |
パスバイパラメータ:
SQL = 「Select(*)をZhuceから選び、Username=@username、PWD=@pwd、type = @type」;
SqlConnection conn = new SqlConnection(Common.Context.SqlManager.CONN_STRING);
            コネル。 Open();

            SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.Add("@username",SqlDbType.VarChar,30);
cmd.Parameters.Add("@pwd",SqlDbType.VarChar,30);
cmd.Parameters.Add("@type",SqlDbType.VarChar,10);
cmd.Parameters["@username"]。 Value = ユーザー名;
cmd.Parameters["@pwd"]。 価値 = pwd;
cmd.Parameters["@type"]。 値=パワー。 テキスト;

            int count = Convert.ToInt32(cmd.ExecuteScalar());

            コネル。 Close();



どのデータベースを使っているのか分かりません
こちらはSQL-Serverのコードの一部です
インジェクション攻撃を防ぐために最も重要なのは、スプライシングパラメータを使うのではなく、パラメータ割り当てメソッドを使うことです。
SqlConnection conn=......
SqlCommand comm =new SqlCommand(「table 1からcount (*)を選択し、ここでname = @loginame とpassword = @loginpassword", conn);
通信。 Parameters.Add(new SqlParameter("@loginame",SqlDbType.NVarchar,20);
通信。 Parameters["@loginame"].value=TextBox1.Text;
通信。 Parameters.Add(new SqlParameter("@loginpassword",SqlDbType.NVarchar,20);
通信。 Parameters["@loginpassword"].value=TextBox2.Text;
通信。 Connection.Open();
int mark=(int)comm。 ExecuteScalar()
//--mark用于标记




先の:comboBox セットは読み取り専用(セレクトのみ)
次に:SQL Server コンポジットインデックス学習
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com