PDA

View Full Version : مبتدی: چک کردن ورودی کاربر



Collector
پنج شنبه 23 دی 1389, 13:12 عصر
سلام دوستان من راهی میخوام که بتوان با آن ورودی های برنامه را کنترل کرد . برای جلوگیری از اینجکشن . و بعد به دیتابیس داده ها را بفرستیم.

Reza_Yarahmadi
پنج شنبه 23 دی 1389, 15:16 عصر
نیاز به کار خاصی نیست از Net 2. به بعد خودش این کار رو انجام میده البته به شرطی که اطلاعات بصورت پارامتر ارسال بشن.

SqlCommand cmd = new SqlCommand("Select * From TableName Where Id = @Id", conn);
cmd.Parameters.AddWithValue("@Id", textBox1.Text);

Collector
پنج شنبه 23 دی 1389, 21:12 عصر
نیاز به کار خاصی نیست از Net 2. به بعد خودش این کار رو انجام میده البته به شرطی که اطلاعات بصورت پارامتر ارسال بشن.

SqlCommand cmd = new SqlCommand("Select * From TableName Where Id = @Id", conn);
cmd.Parameters.AddWithValue("@Id", textBox1.Text);

ممنون که جواب دادید من این رو امتحان کردم. یک بار دیگه هم تاپیک زدم ولی به جواب نرسیدم. لطفا با پروژه عملی پاسخ میدید. طوری که مثلا ; ' " ایم کاراکتر هارا در یک رکورد حذف کند .

Reza_Yarahmadi
پنج شنبه 23 دی 1389, 21:53 عصر
طوری که مثلا ; ' " ایم کاراکتر هارا در یک رکورد حذف کند .
متوجه این مثال نشدم میشه بیشتر توضیح بدید.
من خیلی با مثالهای SQL Injection آشنا نیستم ولی یک مثال ساده میزنم
توی textBox1 متن زیر رو بنویسید

8 or 1=1
توی رویداد کلیک یک دکمه کد زیر رو بنویسید

DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter("Select * From tbl Where Id = " + textBox1.Text, conn);
da.Fill(dt);
dataGridView1.DataSource = dt;
حالا همین مثال رو بصورت زیر بنویسید

DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter("Select * From tbl Where Id = @ID", conn);
da.SelectCommand.Parameters.AddWithValue("@Id", textBox1.Text);
da.Fill(dt);
dataGridView1.DataSource = dt;
این بحث جلوگیری از SQL Injection فقط در Net. نیست و SQL Server هم این کار رو انجام میده.

Collector
پنج شنبه 23 دی 1389, 22:22 عصر
متوجه این مثال نشدم میشه بیشتر توضیح بدید.
منظورم این هست که اگر این کاراکتر ها در ورودی باشد برنامه ارور میدهد و خارج میشود.
حالا امکان داره با تشخیص کد اسکی این کار را انجام داد ؟؟؟ من بالای 20 تا سورس رو با #C در مورد دیتابیس خوندم. ولی چون همه رایگان بوده اند این مشکل را داشته اند. اگر پروژه اهی هست که نکات امنیتی درآن رعایت شود و در سایت باشد لطفا معرفی کنید.