PDA

View Full Version : انجام HtmlEncoding بعد از استفاده از Regulare Expression



dorparasti
چهارشنبه 02 شهریور 1390, 13:05 عصر
سلام

می خواستم بدونم آیا بعد از اینکه با استفاده از regulare expression مطمئن شدم که متن وارده فاقد کاراکترهایی خارج از اونچه مد نظر سیستم است هستش بازم نیازی به encode کردن متن هست ؟

ممنون پیشاپیش

Saman Hashemi
چهارشنبه 02 شهریور 1390, 13:40 عصر
بله اينكار صورت بگيره بهتره چون احتمال داره بعد از اينكه validation صورت گرفت به اون مقادير غير مجاز اضافه بشه...!

dorparasti
چهارشنبه 02 شهریور 1390, 13:52 عصر
چطور میشه بعد از validation دوباره چیزی به متن اضافه کرد ؟

Saman Hashemi
چهارشنبه 02 شهریور 1390, 14:40 عصر
وقتي شما براي سرور ارسال ميكنيد بين مسير به صفحه دسترسي پيدا ميكنند و مقادير دستكاري ميكنند اگه برات خيلي مهمه سمت سرور صحت اطلاعات چك كن...!

jaykob
چهارشنبه 02 شهریور 1390, 16:37 عصر
سلام

شما زمانی java script مرورگر خودتون رو خاموش کنید validator هارو می تونید دور بزنید و هر مقداری بخواهید وارد کنید . سعی کنید با استفاده از کلاس Regex توی یک لایه دیگه اطلاعات رو چک کنید و بعد بفرستید سمت data access layer و از antixss هم استفاده کنید ...

موفق باشید

dorparasti
پنج شنبه 03 شهریور 1390, 01:09 صبح
ممنون

خوب باید بگم که بله ، من هم علاوه بر اعتبارسنجی در سمت کاربر در سمت سرور هم در کد خود صفحه و برای محکم کاری در خود DAC اعتبار سنجی رو انجام می دم . و منظورم این بود که با این تفاصیل بازهم لزومی به encode داده ها هست قبل از ذخیره در بانک یا نه .

دوم اینکه نحوه مقابله با xss رو یکم بیشتر باز میکنی ؟ ابزار یا کلاس خاصی برای این نوع حملات هست ؟

ASPX
پنج شنبه 03 شهریور 1390, 10:02 صبح
بله هست!
کتابخانه AntiXSS مایکروسافت
از اینجا (http://wpl.codeplex.com/)دریافت کنید

کمی بیشتر درباره آن بدانید!
http://www.dotnettips.info/2011/05/xss.html

mohammadjavad
پنج شنبه 03 شهریور 1390, 15:49 عصر
سلام
البته میشه با استفاده ازخاصیت Page.Isvalid چک کرد که javascript مرورگر فعال هست یا خیر !

prankster
شنبه 05 شهریور 1390, 22:54 عصر
شاید بشه گفت هزاران روش برای inject کردن یک کد javascript در صفحه برای حملات Cross Site Script وجود دارد، مثلا ممکن است به جای کد های html از unicode معادل آن استفاده شود، یا مثلا در کد ارسالی carriage return اضافه شود (که در زمان runtime در نظر گرفته نمی شود) و ...
در اینجا لیست تعدادی از حملات XSS را می توانید مرور کنید:
http://ha.ckers.org/xss.html
معمولا با Regular Expression خیلی سخت می توان جلو تمامی کاراکتر های غیر مجاز را گرفت، همچنین گرچه validation در Net. تا حدی جلوی XSS Attack را می گیرد ولی در هر حال بهترین راه حل استفاده از HtmlEncode برای تمامی ورودی هایی است که از سمت کلاینت به سرور ارسال می شود! برای تضمین بیشتر امنیت از encode کردن اطلاعات هنگام بازخوانی و نوشتن اطلاعات در صفحه html هم استفاده می شود.
Microsoft Anti-Cross Site Scripting Library به صورت یک کتابخانه در دسترس است که تا حد بسیار زیادی دردسر اصلاح فرم های aspx را حل می کند:
http://msdn.microsoft.com/en-us/library/aa973813.aspx