PDA

View Full Version : سوال: آیا با این روش میشه sql injesction رو از کار انداخت (حذف فاصله و کاما و ..)



elham1611
دوشنبه 22 اسفند 1390, 20:50 عصر
با سلام

به نظر شما میشه برای از کار انداختن حملات sql در text box قسمت رمز کاراکترهای خطرناکی که با اونها حملات انجام میشه رو حذف کرد ؟

مثلا کاراکترهای فاصله و کاما و ویرگول رو اگه کاربر وارد کرد قبل از مطابقت با رمز این کاراکترها رو پاک کرد.

Mostafa_Dindar
دوشنبه 22 اسفند 1390, 20:57 عصر
با سلام

به نظر شما میشه برای از کار انداختن حملات sql در text box قسمت رمز کاراکترهای خطرناکی که با اونها حملات انجام میشه رو حذف کرد ؟

مثلا کاراکترهای فاصله و کاما و ویرگول رو اگه کاربر وارد کرد قبل از مطابقت با رمز این کاراکترها رو پاک کرد.

سلام ,

خیر ! مطمئن ترین راه برای جلوگیری از حملات SQL Injection استفاده از Parameterized Query هست .

موفق باشید

blackcats
دوشنبه 22 اسفند 1390, 21:09 عصر
سلام ,

خیر ! مطمئن ترین راه برای جلوگیری از حملات SQL Injection استفاده از Parameterized Query هست .

موفق باشید
میشه بیشتر توضیح بدبد؟

یا یک مثال عملی بزارید.

ممنون

mohsen.nsb44
سه شنبه 23 اسفند 1390, 00:03 صبح
شما میتونید اطلاعات رو با پارامتر ارسال کنید
استفاده از استور پروسیجر

mahan.2002
سه شنبه 23 اسفند 1390, 01:19 صبح
سلام
بنظر من می تونه روش خوبی باشه برای این کار
مثلا حتی کاراکتر مثل = ، _ ، > ، < هم میشه به اون اضافه کرد.

Sirwan Afifi
سه شنبه 23 اسفند 1390, 01:20 صبح
میشه بیشتر توضیح بدبد؟

یا یک مثال عملی بزارید.

ممنون

به این صورت :

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=University;Integrated Security=True");
SqlCommand cmd = new SqlCommand("select *from Users where UserName=@UserName and Password=@Password", con);
con.Open();
cmd.Parameters.AddWithValue("@UserName",txt_user.Text);
cmd.Parameters.AddWithValue("@Password",txt_pass.Text);
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
new Sirwan().ShowDialog();
}
else
{
MessageBox.Show("Invalid User!");
}
con.Close();

elham1611
سه شنبه 23 اسفند 1390, 08:55 صبح
یعنی اگه فقط از Parameterized Query کنیم کل مشکل حل میشه؟ و دیگه نمیخواد وسواس به خرج بدم و از این راهها هم استفاده کنم؟

یک مثال برای دوستمان بزنم . یک حمله ساده میشه اینکه در قسمت رمز عبارت ;1=1 رو بنویسیم. خب حالا حالا اگه قبل از اینکه عبارت رو برای پردازش بفرستیم کارکترهای = و ; رو حذف کنیم بعد بفرستیم دیگه عبارت خطرناک نیست

blackcats
سه شنبه 23 اسفند 1390, 10:16 صبح
من یک سوالی هم داشتم
آیا اگر ما یک gridview رو بایند می کنیم به یک datasource از طریق ویزارد آیا از این طریق میشه مورد حمله sql injection قرار بگیره یا نه؟

یعنی ما داخل code behind هیچ کدی نداشته باشیم

maxpayn2
سه شنبه 23 اسفند 1390, 11:15 صبح
با سلام

به نظر شما میشه برای از کار انداختن حملات sql در text box قسمت رمز کاراکترهای خطرناکی که با اونها حملات انجام میشه رو حذف کرد ؟

مثلا کاراکترهای فاصله و کاما و ویرگول رو اگه کاربر وارد کرد قبل از مطابقت با رمز این کاراکترها رو پاک کرد.

خب شاید کاربر دلش بخواد از این کارکتر ها در کلمه عبور یا نام کاربریش استفاده کنه ، ما که دیکتاتور نیستیم که زوری بگیم نمیشه از این ها استفاده کنی


من یک سوالی هم داشتم
آیا اگر ما یک gridview رو بایند می کنیم به یک datasource از طریق ویزارد آیا از این طریق میشه مورد حمله sql injection قرار بگیره یا نه؟

یعنی ما داخل code behind هیچ کدی نداشته باشیم

SQL Injection زمانی رخ میده که کد های کار با دیتابیس به صورت مستقیم از طریق سایت به دیتابیس فرستاده بشه ، اگه شما برای تمام عملیاتی که قراره توی دیتابیس انجام بشه Stored Procedure داشته باشید و به اون پارامتر ارسال کنید در هیچ صورتی SQL Injection انجام نمیشه

mahan.2002
سه شنبه 23 اسفند 1390, 11:42 صبح
با سلام دوباره
دوستانی که میگن نمیشه از روشی که ایشون ارائه کردن استفاده کرد
میشه دلیلی بیارن که چرا نمیشه از این روش استفاده کرد. من میدونم که برای رخ نداد Injection از این راه هم استفاده می کنند. ولی دوستان توجه نکرن به سوال، اینکه ایا میشه از این روش هم استفاده کرد یا نه .

blackcats
سه شنبه 23 اسفند 1390, 12:32 عصر
به هر حال استفاده کردن از روش اصولیتر شاید بهتر از این باشه که ما بیاییم تمامی دستورات sql شامل update insert delete = ، رو از استیرینگ حذف کنیم

ای کاش یه مرد پیدا میشد در یک مثال کامل طریقه درج، حذف، سرچ و، ویرایش و بایند رو به صورت اصولی که مشکل sql injection هم پیش نیاد توضیح میداد!!

maxpayn2
سه شنبه 23 اسفند 1390, 12:53 عصر
نگفتم نمیشه استفاده کرد ، گفتم شاید کاربر بخواد از این کارکترها توی نام کاربری یا کلمه عبور استفاده کنه ، شما نمیتونی کاربر رو مجبور کنی این کار رو نکنه ، دوما شاید جناب هکر روشی پیدا کنه که این روش رو دور بزنه (جای بحثش اینجا نیست) پس باید کاری کرد که اصلا SQL Injection رخ نده ، بر فرض اینکه شما تمام تکست باکس های سایت رو چک کردی ، اگه تو سایتت فرم ساز داشته باشی چی ؟ میخوای یه httpModule بنویسی که تمام تکست باکس هایی که داینامیک ایجاد میشن رو هم چک کنه ؟ بر فرض که این کار رو هم کردی اگه هکر توی URL دستور SQL نوشت چی ؟ باید URL رو هم چک کنی . خب چرا اینقدر خودت رو اذیت میکنی ، از اول Stored Procedure بنویس هم جلوی SQL Injection رو میگیری ، هم Performance سایتت بالا میره ، هم مدیریت ارتباط با پایگاه داده راحت تر میشه ، هم با کلاس تره ، هم ....

blackcats
سه شنبه 23 اسفند 1390, 13:04 عصر
نگفتم نمیشه استفاده کرد ، گفتم شاید کاربر بخواد از این کارکترها توی نام کاربری یا کلمه عبور استفاده کنه ، شما نمیتونی کاربر رو مجبور کنی این کار رو نکنه ، دوما شاید جناب هکر روشی پیدا کنه که این روش رو دور بزنه (جای بحثش اینجا نیست) پس باید کاری کرد که اصلا SQL Injection رخ نده ، بر فرض اینکه شما تمام تکست باکس های سایت رو چک کردی ، اگه تو سایتت فرم ساز داشته باشی چی ؟ میخوای یه httpModule بنویسی که تمام تکست باکس هایی که داینامیک ایجاد میشن رو هم چک کنه ؟ بر فرض که این کار رو هم کردی اگه هکر توی URL دستور SQL نوشت چی ؟ باید URL رو هم چک کنی . خب چرا اینقدر خودت رو اذیت میکنی ، از اول Stored Procedure بنویس هم جلوی SQL Injection رو میگیری ، هم Performance سایتت بالا میره ، هم مدیریت ارتباط با پایگاه داده راحت تر میشه ، هم با کلاس تره ، هم ....

واقعااااااا دمت گرم خیلی زیبا شفاف توضیح دادی مسائل رو
اما اگر می تونی یک مثال عملی از پست شماره 11 که گفتم بزار که این پست جوابگوی سوال مهم در خصوص sql injection باشه و مرجع برای ما بقی دوستان و البته خودم!!

maxpayn2
سه شنبه 23 اسفند 1390, 13:32 عصر
این کد ها رو حدود 4 سال پیش نوشتم برا همین اینقدر مبتدیه



cnn2.ConnectionString = "Data Source=.;Database=tconet2;Integrated Security=SSPI";
cnn2.Open();
SqlCommand cmd2 = new SqlCommand("insert_amozesh", cnn2);
cmd2.CommandType = CommandType.StoredProcedure;

cmd2.Parameters.AddWithValue("@amozesh_id", Convert.ToInt32(AmozeshID));
cmd2.Parameters.AddWithValue("@user_id", Convert.ToInt32(Session["user_id"].ToString()));
cmd2.Parameters.AddWithValue("@amozesh_text", amozeshTextTextBox.Text);
cmd2.Parameters.AddWithValue("@allowed", 1);

cmd2.ExecuteNonQuery();

cnn2.Close();



cnn1.ConnectionString = "Data Source=.;Database=tconet2;Integrated Security=SSPI";
cnn1.Open();
SqlCommand cmd1 = new SqlCommand("update_amozesh2", cnn1);
cmd1.CommandType = CommandType.StoredProcedure;

cmd1.Parameters.AddWithValue("@text", amozeshTextBox2.Text);

cmd1.ExecuteNonQuery();

cnn1.Close();



cnn2.ConnectionString = "Data Source=.;Database=tconet2;Integrated Security=SSPI";
cnn2.Open();
SqlCommand cmd2 = new SqlCommand("delete_user", cnn2);
cmd2.CommandType = CommandType.StoredProcedure;

cmd2.Parameters.AddWithValue("@id", Convert.ToInt32(Session["id"].ToString()));

cmd2.ExecuteNonQuery();

cnn2.Close();



cnn1.ConnectionString = "Data Source=.;Database=tconet2;Integrated Security=SSPI";
cnn1.Open();
SqlCommand cmd1 = new SqlCommand("select_users", cnn1);
cmd1.CommandType = CommandType.StoredProcedure;

cmd1.Parameters.AddWithValue("@id", Convert.ToInt32(Session["id"].ToString()));

SqlDataReader dr1 = cmd1.ExecuteReader();

userNameTextBox.Text = "";
passwordTextBox.Text = "";
passwordConfTextBox.Text = "";

if (dr1.Read())
{
userNameTextBox.Text = dr1[1].ToString();
departmentDropDownList.SelectedValue = dr1[3].ToString();
roleDropDownList.SelectedValue = dr1[4].ToString();
}

cnn1.Close();



اگه بجای نوشتن Connection String توی کد ، کدی بنویسی که از Web.config بخونه بهتره

نکته : ممکن این کد ها از نظر Performance یه مشکلاتی داشته باشن ولی برای ایده گرفتن بد نیستن

blackcats
سه شنبه 23 اسفند 1390, 14:49 عصر
این کد ها رو حدود 4 سال پیش نوشتم برا همین اینقدر مبتدیه



cnn2.ConnectionString = "Data Source=.;Database=tconet2;Integrated Security=SSPI";
cnn2.Open();
SqlCommand cmd2 = new SqlCommand("insert_amozesh", cnn2);
cmd2.CommandType = CommandType.StoredProcedure;

cmd2.Parameters.AddWithValue("@amozesh_id", Convert.ToInt32(AmozeshID));
cmd2.Parameters.AddWithValue("@user_id", Convert.ToInt32(Session["user_id"].ToString()));
cmd2.Parameters.AddWithValue("@amozesh_text", amozeshTextTextBox.Text);
cmd2.Parameters.AddWithValue("@allowed", 1);

cmd2.ExecuteNonQuery();

cnn2.Close();



cnn1.ConnectionString = "Data Source=.;Database=tconet2;Integrated Security=SSPI";
cnn1.Open();
SqlCommand cmd1 = new SqlCommand("update_amozesh2", cnn1);
cmd1.CommandType = CommandType.StoredProcedure;

cmd1.Parameters.AddWithValue("@text", amozeshTextBox2.Text);

cmd1.ExecuteNonQuery();

cnn1.Close();



cnn2.ConnectionString = "Data Source=.;Database=tconet2;Integrated Security=SSPI";
cnn2.Open();
SqlCommand cmd2 = new SqlCommand("delete_user", cnn2);
cmd2.CommandType = CommandType.StoredProcedure;

cmd2.Parameters.AddWithValue("@id", Convert.ToInt32(Session["id"].ToString()));

cmd2.ExecuteNonQuery();

cnn2.Close();



cnn1.ConnectionString = "Data Source=.;Database=tconet2;Integrated Security=SSPI";
cnn1.Open();
SqlCommand cmd1 = new SqlCommand("select_users", cnn1);
cmd1.CommandType = CommandType.StoredProcedure;

cmd1.Parameters.AddWithValue("@id", Convert.ToInt32(Session["id"].ToString()));

SqlDataReader dr1 = cmd1.ExecuteReader();

userNameTextBox.Text = "";
passwordTextBox.Text = "";
passwordConfTextBox.Text = "";

if (dr1.Read())
{
userNameTextBox.Text = dr1[1].ToString();
departmentDropDownList.SelectedValue = dr1[3].ToString();
roleDropDownList.SelectedValue = dr1[4].ToString();
}

cnn1.Close();



اگه بجای نوشتن Connection String توی کد ، کدی بنویسی که از Web.config بخونه بهتره

نکته : ممکن این کد ها از نظر Performance یه مشکلاتی داشته باشن ولی برای ایده گرفتن بد نیستن




درود بر شما

elham1611
سه شنبه 23 اسفند 1390, 16:32 عصر
دوستان من از این روش استفاده کردم برای تشخیص صحیح بودن رمز آیا خوبه و حملات رو دفع میکنه؟

توضیح : uuu رو برابر با textbox نام کاربر و ppp رو برابر با textbox کلمه عبور گرفتم.



SqlCommand sco2 = new SqlCommand("SELECT * FROM [user] WHERE (username = @uuu) AND (password = @ppp)", sc2);


sco2.Parameters.Add(u);
sco2.Parameters.Add(p);

sc2.Open();

SqlDataReader r = sco2.ExecuteReader();
if (r.Read())
{

Response.Redirect("home.aspx");

}

ممنون

mahan.2002
سه شنبه 23 اسفند 1390, 18:30 عصر
نگفتم نمیشه استفاده کرد ، گفتم شاید کاربر بخواد از این کارکترها توی نام کاربری یا کلمه عبور استفاده کنه ، شما نمیتونی کاربر رو مجبور کنی این کار رو نکنه

نه یکی از دوستان فرمودند خیر . من در جواب سوال کردن دلیلتون برای این صحبت چیه .
در ضمن این محدویتی نیست که شما می فرماید در ضمن بنظر من اگر به کاربر اجازه داد از هر کاراکتری برای اسم و رمز خود استفاده کرد کار ما غیر اصولی است. مثلان حتی بعضی از سایت های معتبر بانکی حتی اجازه انتخاب نام فارسی رو به شما نمیدن. چطور این صحبت رو دوستان دلیل قرار میدهند نمی دانم . مثال دیگه که شاید خیلی هم از لحاظ امنیتی مشکلی بنظر میرسد نداشته باشد حتی ماکروسافت برای انتخاب بعضی از کاراکتر ها به شما اجازه تخصیص این کاراکتر ها به فایل و فولدرهای شما نمی دهد. نمی دونم چطور دوستان ااستفاده نکردن از کاراکترهای " = ، > ،< ، - "این رو محدویت میشمارند!!
لطفا دلایلی که با این روش نمی توان از Injection جلوگیری کرد را بیان کنید

mf_007
سه شنبه 23 اسفند 1390, 18:47 عصر
یک مقاله از آقای راد
http://barnamenevis.org/showthread.php?91241-%D8%B1%D9%88%D8%B4-%D9%87%D8%A7%DB%8C-%D9%85%D8%AD%D8%A7%D9%81%D8%B8%D8%AA-%D9%88-%D9%85%D9%88%D8%A7%D8%B1%D8%AF-%D8%B1%D8%B9%D8%A7%DB%8C%D8%AA-%D8%A7%D8%B5%D9%88%D9%84-%D8%A7%D9%85%D9%86%DB%8C%D8%AA%DB%8C-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-ASP.NET

جمله زیر هم دقیقا جمله ایشونه

برخی افراد برای مقابله با SQL Injection، برخی کلمات کلیدی SQL، نظیر DELETE، UPDATE، DROP و ... رو در رشته ی ورودی فیلتر می کنند.
این عمل ساده لوحانه، صرف نظر از ایجاد محدودیت برای برخی کلمات در ورودی و Poor Coding، نکته ای رو از دید این افراد دور نگه داشته و اون این هست که:
هر کاراکتر یک کد hexadecimal داره که می تونه به جای کاراکتر اصلی در ورودی قرار بگیره و بدین طریق میشه به راحتی کلمه ی محدود شده رو دور زد!
به عنوان مثال، معادل کلمه ی DROP، عبارت 0x440x520x4F0x50 هست!

maktab
سه شنبه 23 اسفند 1390, 19:00 عصر
حالا اگر از EF و Linq استفاده کنیم چطور؟ آیا از حملات جلوگیری نمیکنه؟
اگر اشتباه نکنم EF هم خصوصیتی همچون SP داره

mf_007
سه شنبه 23 اسفند 1390, 19:08 عصر
حالا اگر از EF و Linq استفاده کنیم چطور؟ آیا از حملات جلوگیری نمیکنه؟
اگر اشتباه نکنم EF هم خصوصیتی همچون SP داره
EF تو کوئری هایی که تولید می کنه از پارامتر استفاده می کنه و از این حملات جلوگیری می کنه

mahan.2002
سه شنبه 23 اسفند 1390, 20:01 عصر
دوست عزیز شما میگوید میشه با عبارات hexadecimal به جای استفاده از کد های Sql دستورات را به Sql اضافه نمود . دوستان اگر میتونن یک نمونه یا مثال برای اشنایی بیشتر بزارن .
که از طریق این کد بتوان دستوری رو به صورت Injection به بانک تزریق کرد. من تعجب میکنم شرکت ماکروسافت هنوز نتوانسته با هزاران برنامه نویس این مشکل رو حل کند که بتوان به راحتی با چند کد Hex امنیت برنامه را به خطر انداخت؟!!

moferferi
سه شنبه 23 اسفند 1390, 20:57 عصر
توی بحث اموزش دات نت مهندس کیانیان گفتن اگه از ef همراه با sp استفاده کنید احتمال حملات Injection تقریبا صفر میشه.

maxpayn2
چهارشنبه 24 اسفند 1390, 09:45 صبح
نگفتم نمیشه استفاده کرد ، گفتم شاید کاربر بخواد از این کارکترها توی نام کاربری یا کلمه عبور استفاده کنه ، شما نمیتونی کاربر رو مجبور کنی این کار رو نکنه ، دوما شاید جناب هکر روشی پیدا کنه که این روش رو دور بزنه (جای بحثش اینجا نیست) پس باید کاری کرد که اصلا SQL Injection رخ نده


نه یکی از دوستان فرمودند خیر . من در جواب سوال کردن دلیلتون برای این صحبت چیه .
در ضمن این محدویتی نیست که شما می فرماید در ضمن بنظر من اگر به کاربر اجازه داد از هر کاراکتری برای اسم و رمز خود استفاده کرد کار ما غیر اصولی است. مثلان حتی بعضی از سایت های معتبر بانکی حتی اجازه انتخاب نام فارسی رو به شما نمیدن. چطور این صحبت رو دوستان دلیل قرار میدهند نمی دانم . مثال دیگه که شاید خیلی هم از لحاظ امنیتی مشکلی بنظر میرسد نداشته باشد حتی ماکروسافت برای انتخاب بعضی از کاراکتر ها به شما اجازه تخصیص این کاراکتر ها به فایل و فولدرهای شما نمی دهد. نمی دونم چطور دوستان ااستفاده نکردن از کاراکترهای " = ، > ،< ، - "این رو محدویت میشمارند!!
لطفا دلایلی که با این روش نمی توان از Injection جلوگیری کرد را بیان کنید


لطفا جمله ای رو که از من ناقص نقل قول کردید کامل بخونید (براتون نقل قول کردم) ، گفتم هکر میتونه این روش رو دور بزنه و گفتم جای بحثش اینجا نیست ولی اگه دوست دارید مقاله آقای راد رو بخونید (نقل قول پایینی) ، مخصوصا به کلمه ساده لوحانه خیلی توجه کنید (منظور خاصی ندارم ) ، دوما سایت های معتبر نه خدا هستند نه پیغمبر که هر کاری کردند ما هم بکنیم ، تا حالا سعی کردی آمار هک شدن سایت های بزرگی مثل ناسا رو در بیاری ؟ فقط یک گروه هکر ایرانی 50 بار این سایت رو هک کرده !!!



یک مقاله از آقای راد
http://barnamenevis.org/showthread.php?91241-%D8%B1%D9%88%D8%B4-%D9%87%D8%A7%DB%8C-%D9%85%D8%AD%D8%A7%D9%81%D8%B8%D8%AA-%D9%88-%D9%85%D9%88%D8%A7%D8%B1%D8%AF-%D8%B1%D8%B9%D8%A7%DB%8C%D8%AA-%D8%A7%D8%B5%D9%88%D9%84-%D8%A7%D9%85%D9%86%DB%8C%D8%AA%DB%8C-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-ASP.NET

جمله زیر هم دقیقا جمله ایشونه

برخی افراد برای مقابله با SQL Injection، برخی کلمات کلیدی SQL، نظیر DELETE، UPDATE، DROP و ... رو در رشته ی ورودی فیلتر می کنند.
این عمل ساده لوحانه، صرف نظر از ایجاد محدودیت برای برخی کلمات در ورودی و Poor Coding، نکته ای رو از دید این افراد دور نگه داشته و اون این هست که:
هر کاراکتر یک کد hexadecimal داره که می تونه به جای کاراکتر اصلی در ورودی قرار بگیره و بدین طریق میشه به راحتی کلمه ی محدود شده رو دور زد!
به عنوان مثال، معادل کلمه ی DROP، عبارت 0x440x520x4F0x50 هست!


دوست عزیز شما میگوید میشه با عبارات hexadecimal به جای استفاده از کد های Sql دستورات را به Sql اضافه نمود . دوستان اگر میتونن یک نمونه یا مثال برای اشنایی بیشتر بزارن .
که از طریق این کد بتوان دستوری رو به صورت Injection به بانک تزریق کرد. من تعجب میکنم شرکت ماکروسافت هنوز نتوانسته با هزاران برنامه نویس این مشکل رو حل کند که بتوان به راحتی با چند کد Hex امنیت برنامه را به خطر انداخت؟!!

به مایکروسافت چه ربطی داره ؟ تبدیل رشته به هگز یا برعکس جزو پرتوکول های وب هستش ، مگه مایروسافت صاحب وبه که بیاد جلو این کار رو بگیره ؟ دوما مگه فقط توی SQL مایکروسافت Injection داریم ؟ سوما صاحب وب هم حتما بیشتر از ما روی این قضیه فکر کرده و نیازی به تعجب نیست .

mahan.2002
چهارشنبه 24 اسفند 1390, 18:17 عصر
با سلام
من از شما خواستم مثال یا نمونه ای خواستم . دوستان فکر میکنم خیلی نمی خوان جواب صریحی در این موضوع بدن و با استناد بک یک مقاله که اونم هم تاریخش به سال 86 بر میگرده ! شاید دوست ندارن جواب به این سوال بدن
من خواستم از شما یک نمونه یا مثال بیارید ایا کار سختیه!!

mahan.2002
چهارشنبه 24 اسفند 1390, 18:40 عصر
به مایکروسافت چه ربطی داره ؟ تبدیل رشته به هگز یا برعکس جزو پرتوکول های وب هستش ، مگه مایروسافت صاحب وبه که بیاد جلو این کار رو بگیره ؟ دوما مگه فقط توی SQL مایکروسافت Injection داریم ؟ سوما صاحب وب هم حتما بیشتر از ما روی این قضیه فکر کرده و نیازی به تعجب نیست .

در مورد این صحبت هم که به ماکروسافت ربطی نداره . من متوجه نمیشم پس به کی ربط داره. ضمنا چه ربطی به وب داشته!! کدوم پروتکل !! میشه بفرمایید ما هم روشن بشم! اسنتادتون واقعا جالبه .برنامه در این سطح رو هم اطلاعات ورودی خود تستی نمیکنه ! حتما مثال تون رو در این باره بیارید
در مورد ساده لوحانه هم عرض کنم که شما یک تایپک رو از خاک در اوردید به عنوان سند علمی عرض کنم که شاید عده ای ساده لوح با نقل یک مطلب از کسی و اون رو به عنوان آیه ای در نظر بگیرند. برازنده اون افراد باشه. ولی فکر نمیکنم برای کسی که بخواد مطلبی با تحقیق و مسنتد یاد بگیرد چنین مطلبی درست باشه.

rahmatr
چهارشنبه 24 اسفند 1390, 19:54 عصر
با فیلتر کردن ورودی ها و حذف بعضی کلمات و حروف نمی توان 100 درصد جلوی SqlInjection را گرفت.
برای روشن شدن، مطلب زیر را تا آخر بخوانید (تا مقدار زیادی از روشهای هک را یاد بگیرید!).

انواع حملات SqlInjection :
SQL Injection Cheat Sheet (http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/)

mahan.2002
چهارشنبه 24 اسفند 1390, 21:53 عصر
با فیلتر کردن ورودی ها و حذف بعضی کلمات و حروف نمی توان 100 درصد جلوی SqlInjection را گرفت.
برای روشن شدن، مطلب زیر را تا آخر بخوانید (تا مقدار زیادی از روشهای هک را یاد بگیرید!).

انواع حملات SqlInjection :
SQL Injection Cheat Sheet (http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/)

برادر شما که با خواندن یه مطلب مقدار زیادی!! اطلاعات به افزودنی های خودتون اضافه فرمودید.
با این اطلاعات زیادتون !! لطف بفرمایید جواب بنده بدید بخودتون زحمت سرچ و ارسال لینک ندید. دوستان خودشون می تونن سرچ کنن. نمیدونم اصلان سوال بنده رو خوندید یا نه گفتم یه مثال یا نمونه بزارید . نمیدونم یا سوال من نامفهوم بوده یا شما با این اطلاعاتون زیاد سوال منو نفهمیدید!

rana-writes
پنج شنبه 25 اسفند 1390, 22:33 عصر
سلام
اين تاپيك رو ببينين
پست 5 و 6 استفاده از استور پروسيجر رو گفته براتون
http://barnamenevis.org/showthread.php?232641

موفق باشين