PDA

View Full Version : مبتدی: ایجاد امنیت در دیتابیس با جلوگیری از فرستادن فایل یا تکست مخرب توسط کلاینت



Beginner67
چهارشنبه 12 آبان 1395, 22:36 عصر
سلام.
در پروژه یک سری صفحات هستن ک کلاینت میتونه داخل تکست باکس اطلاعاتی درج کنه و از FileUpload فایلی رو اضافه کنه.

*چطور باید برای امنیت دیتابیس، تکست باکس ها و فایل آپلود رو فیلتر کنم ک اطلاعات مخرب درج نکنن؟
و قبل از راه حل باید متوجه بشم،
*اطلاعات مخربی ک میشه از طریق تکست باکس و فایل آپلود فرستاد چی هستن.
*راه دیگه ای هم برای ایجاد مشکل در دیتابیس وجود داره؟
لطفا راهنماییم کنید.

bomb23
پنج شنبه 13 آبان 1395, 07:09 صبح
سلام
حتما فایل آپلودی را rename کنید. پسوند و حجم آن ها را نیز حتما مشخص نمایید که فایل غیر مجاز امکان بارگذاری نداشته باشد.
برای جلوگیری از Sql inject باید از پارامترها به جای ارسال مستقیم مقادیر تکست باکسها به کوئری استفاده کنید.
همچنین میتونید از Entity Framework استفاده کنید که اونم این فیلترها رو صورت میده و نیازی نیست شما درگیر این مسئله بشید.

Beginner67
پنج شنبه 13 آبان 1395, 16:45 عصر
همه ی درج ها و آپدیت ها با پارامتر بوده.
وقتی با پارامتر باشه ،دیگه هیچ اطلاعات مخربی توسط تکست باکس وارد نمیشه؟

من یه سرچ هم دارم با این کد که اطلاعات تکست باکس رو با یک متغیر میفرستم به صفحه سرچ:

Response.Redirect("Search?sch=" + TextBox1.Text);

و در صفحه سرچ از دستور selectquery استفاده میکنم،(عکس ضمیمه)
برای امن شدن سرچ چه کاری انجام بدم؟

لاگین با دیتاست هست:

TB_RegisterTableAdapter ad = new TB_RegisterTableAdapter();
int i = System.Convert.ToInt32(ad.registerlogin(TextBox1.T ext,TextBox2.Text));

آیا این مسیر(لاگین) امن هست؟

شرلوک هلمز
پنج شنبه 13 آبان 1395, 22:26 عصر
از
Server.HtmlEncode(text );
استفاده کن

Beginner67
شنبه 15 آبان 1395, 09:07 صبح
چه راه دیگه ای دارم برای جلوگیری از حملات اسکریپتی؟
با استفاده از
Server.HtmlEncode آیا سرچ من امنیت پیدا میکنه؟

شرلوک هلمز
یک شنبه 16 آبان 1395, 23:50 عصر
خودت دستور را امتحان کن کدهای html و جاوا را تغییر میده تا اجرا نشوند مثلا
<script >var a</script>
<b>تست </b>
مطلب خارج از تگ
به این تبدیل می شه
"&lt;script &gt;var a&lt;/script&gt;\r\n&lt;b&gt;تست &lt;/b&gt;\r\nمطلب خارج از تگ"
ا

شرلوک هلمز
یک شنبه 03 اردیبهشت 1396, 14:20 عصر
به غیر از موردی که در بالا ذکر شد میتوانید از توضیح زیر نیز استفاده کنید.
برای جلوگیری از حملات xss یا همون کد های مخرب از طریق ورودی هایی که کاربر اجازه ی ارسال html دارد می توانید از کتابخانه ی HtmlSanitizationLibrary.dll و AntiXSSLibrary.dll استفاده کنید . این دو کتابخانه معمولا در برنامه antixss.msi وجود دارند.
شما باید این دوتا dll را به پروژه اضافه کنید و سپس از دستور زیر استفاده کنید


string safeHtml=Microsoft.Security.Application.Sanitizer. GetSafeHtml(txt1.text);