PDA

View Full Version : امنیت در SQL



hassan1365
سه شنبه 23 آبان 1385, 22:04 عصر
سلام
چطوری میتونم داده هایی رو که از کاربر میگیرم فیلتر کنم و بعد اونا رو اجرا کنم که اگه یه وقت کاربر یک یا چند کاراکتر اضافی مثل ' یا " یا % وارد کرد اثری نداشته باشه و پیغام نده؟(sql injection)
یه سوال دیگه هم داشتم .ببخشید که ربطی به موضوع مذکور نداره.سه تا فریم دارم که دوتاش لینکه:لینکهای فریم اول ، فریم دوم را لود میکنن و لینکهای فریم دوم ، فریم سوم رو لود میکنن.مثلا اگه واسه فریم اول داشته باشیم:add. با کلیک بر روی add محتویات فریم دوم برابر نام جداول میشه و بعد با کلیک بر روی اسم جداول یه سری فیلد در فریم سوم ظاهر میشه که کاربر میتونه اطلاعات رو وارد کنه.(خودمم نفهمیدم چی شد).حالا برای پیاده سازیش دوستان چه راهکاری رو پیشنهاد میکنید.

موفق باشید.

hassan1365
چهارشنبه 24 آبان 1385, 21:36 عصر
سلام
مشکل فریم ها حل شد.(البته اگه دوستان میخوان بگن تا سورسشو بذارم).فقط مونده مشکل فیلتره که یه راه دیگه هم به ذهنم رسید:چطوره موقعی که کاربر میخواد اطلاعات رو وارد کنه جلوشو بگیریم که اضافی وارد نکنه و برای مثال فقط بتونه حروف و اعداد وارد کنه(البته به استثناء چند کاراکتر خاص مثل زیرخط که البته بعید میدونم درست بشه چون کاربر میتونه این اطلاعات اضافی رو تو addressbar تایپ کنه.پس در هر صورت باید قبل از اجرای دستور SQL اونو فیلتر کرد).دوستان اگه نظرات ارزشمندتون رو مطرح کنین ممنون میشم.

موفق باشید.

blackeve
یک شنبه 28 آبان 1385, 09:56 صبح
سلام...
در مورد فیلتر کردن میتونید از چند روش استفاده کنید
میتونید از جاوااسکریپت در سمت کاربر برای ورودی گرفتن با فرمت خاص استفاده کنید . برای مثال بای ورودی فیلد ایمیل اگه دیده باشید فرمت ورودی رو بیشتر سایتها اعمال می کنند مثل این فرمت
__._______@___________
برای ایمیل یا برای ورود کد پستی تنها اعداد استفاده میشه .از این قبیل زیاده و شما با یه جستجوی ساده میتونید کلی مطلب و مثال برای این موضوع پیدا کنید
کلید جستجو در گوگل : javascript regular expression

در مورد SQL :
در این مورد مقاله زیاده و نکته ای که باید مد نظر داشته باشی جدای نوع بانک اطلاعاتی این موارده :
1 : نوی فیلد رو در بانک سعی کن مناسب اطلاعات ورودیت باشه برای مثال برای یک مقدار عددی از فیلد رشته ای استفاده نکن هرچند میشه
2: در ورودی اطلاعات از فیلتر استفاده کنید (مورد بالا)
ورودی اطلاعات رو پس از دریاف از کاربر در سمت کاربر یا سرویس دهنده ( ترجیحاً سرویس دهنده) بررسی کنید.
3: محدودیت های دسترسی برای فیلدهای خاص رو در سطح بانک اطلاعاتی رعایت کنید
-------------
برای مورد 2 اگر نیاز به توابع خاصی دارید که بصورت خودکار تمام کارکتر های غیر ضروری رو حذف کنند میتونم براتون نمونه ای بزارم..
در مورد مورد سوم باید به راهنمای سرویس دهنده بانک اطلاعاتی خودتون مراجعه کنید.

موفق باشید --

hassan1365
دوشنبه 29 آبان 1385, 19:12 عصر
سلام
فکر کنم بشه از instr استفاده کرد ولی بهتره حروف و اعداد رو از رشته ورودی جدا کرد تا اینکه کاراکتر ها رو جدا کرد.اگه لطف کنی مثال بیاری که فوق العاده است.

موفق باشید.