برگزیده های پرشین تولز

جلوگیری از حملات SQL Injection

hamidch56

کاربر تازه وارد
تاریخ عضویت
25 نوامبر 2005
نوشته‌ها
26
لایک‌ها
0
با سلام

براي جلوگیری از حملات SQL Injection كه ارسالها به صورت POST است تنها گذاشتن کد زیر در برنامه کافی است یا نه

اگه کسی میدونه ممنون میشم توضیح بده :)

-----------------------------------------------------
HTML:
Username=Replace(Username ,"'"," ")
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
کافی نیست!

هم باید حواست به پرمیشن ها باشه و درست و برحسب نیاز تعیین کنی. هم اینکه همه فیلدهای ورودی که قراره در کوئری استفاده بشن validate بشن هم از نظر حداکثر تعداد کارآکتر و هم نوع کارآکترهای مجاز
ضمنا بهتره از stored procedure استفاده کنی و مقادیر فیلدها رو بعنوان پارامتر براش بفرستی تا اینکه جمله sql رو با بهم چسبوندن چند رشته حرفی بسازی.

بقیه اش رو هم اساتید میان میگن.
 

hamidch56

کاربر تازه وارد
تاریخ عضویت
25 نوامبر 2005
نوشته‌ها
26
لایک‌ها
0
مرسی

من این می خوام برای قسمت ورود کاربر استفاده کنم که تنها دو فیلد نام کاربری و کلمه عبور است

می خواستم بدونم در این حالت این کد که نوشتم کفایت می کنه یا نه :)
 

KambizZandi

کاربر تازه وارد
تاریخ عضویت
4 آپریل 2004
نوشته‌ها
59
لایک‌ها
5
محل سکونت
Iran - Tehran
سلام

روش زير رو استفاده كنيد بهتره:
يك فيلد در db داشته باشيد مثلا به اسم UserPassHash كه نام كاربري و نام رمز رو در يك string بذاريد و با يك سيستم Hashing اونو Hash كنيد و در اين فيلد بذاريد.
اگر نام رمز كاربري عوض شد بايد اين فيلد رو هم Update كنيد.
مرحله بعدي براي چك كردن اينه كه نام كاربري و نام رمزي كه يوزر داده براي Login شدن رو مقل حالت قبل ازش Hash بگيريد و با Hash موجود در فيلد بالايي مطابقت بديد.
اينجوري هيچ SQL Injection اي نميتونه كاري انجام بده.
 

mazoolagh

Registered User
تاریخ عضویت
10 آپریل 2004
نوشته‌ها
2,938
لایک‌ها
7
دقیقا همین که آقای زندی گفت
 
بالا