PDA

View Full Version : خطای A potentially dangerous Request.Form



rezaei manesh
شنبه 24 شهریور 1386, 17:32 عصر
سلام
من یک freetext box در صفحه دارم وقتی که یه متن رو می نویسم و تایید می کنم درست کار می کنه اما اگه هر عملی رو توسط منوهای freetext box روی متن انجام بدم مثلا رنگ رو تغییر بدم حتی اگه دستی هم تو کد ها این کار رو انجام بدم خطای زیر رو می ده
دلیلش رو نمی دونم ؟؟؟


A potentially dangerous Request.Form value was detected from the client (ctl00_ContentPlaceHolder1_FreeTextBox1="<div align="center">...").
Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. You can disable request validation by setting validateRequest=false in the Page directive or in the configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case.

Exception Details: System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (ctl00_ContentPlaceHolder1_FreeTextBox1="<div align="center">...").

Behrouz_Rad
شنبه 24 شهریور 1386, 21:49 عصر
"validateRequest="False رو به دایرکتیو Page صفحه اضافه کن.

موفق باشید.

maxpayn2
شنبه 11 اسفند 1386, 09:46 صبح
من هم همین مشکل رو تو 2 تا صفحه داشتم ،‌ از راهنمایی آقای راد تو جفتش استفاده کردم ولی تو یکیش جواب داد تو یکی دیگه جواب نداد

maxpayn2
شنبه 11 اسفند 1386, 10:33 صبح
مشکل با نوشتن کد زیر تو Web.config حل شد :



<configuration>
...
<system.web>
<pages validateRequest="false" />
...
</system.web>
...
</configuration>

Neo Persian
شنبه 11 اسفند 1386, 10:42 صبح
"validateRequest="False رو به دایرکتیو Page صفحه اضافه کن.

موفق باشید.
یه توضیح میدین که کار این ValidateRequest چی هست؟ و اینکه با غیر فعال کردنش مشکلی از نظر امنیت پیش نمیاد؟ ممنون

rezaei manesh
یک شنبه 12 اسفند 1386, 08:38 صبح
سلام به نظر من اگه رو هر صفحه که نیاز هست شما این کد رو اضافه کنی بهتره تا این که تو وب کامفیگ برای همه صفحاتت انجام بدی اگه از مستر پیج استفاده می کنید باید این کد رو در مستر پیج بنویسید و...

maxpayn2
یک شنبه 12 اسفند 1386, 10:31 صبح
من هم همین مشکل رو تو 2 تا صفحه داشتم ،‌ از راهنمایی آقای راد تو جفتش استفاده کردم ولی تو یکیش جواب داد تو یکی دیگه جواب نداد


سلام به نظر من اگه رو هر صفحه که نیاز هست شما این کد رو اضافه کنی بهتره تا این که تو وب کامفیگ برای همه صفحاتت انجام بدی اگه از مستر پیج استفاده می کنید باید این کد رو در مستر پیج بنویسید و...

گفتم که اول تو خود صفحه کد رو اضافه کردم ولی جواب نداد :متعجب: برا همین مجبور شدم تو Web.config این کار رو بکنم

Neo Persian
یک شنبه 12 اسفند 1386, 12:21 عصر
همه اینجا دنبال اینن که فقط یه جوری از مشکل خلاص بشن!

فکر کنم اگه بدونیم اصلا این validateRequest کارش چی هست و برای چی این Error اتفاق میافته بیشتر بهمون کمک کنه...

Behrouz_Rad
یک شنبه 12 اسفند 1386, 12:57 عصر
فکر کنم اگه بدونیم اصلا این validateRequest کارش چی هست و برای چی این Error اتفاق میافته بیشتر بهمون کمک کنه...

validateRequest رفتار جدیدی هست که در ASP.NET 2.0 معرفی شد و کلیه ی ورودی هایی که از سمت کلاینت به سرور ارسال میشه رو برای عدم وجود ورودی های مخرب بررسی می کنه.
یک HttpModule این وظیفه رو بر عهده داره و قبل از هر رویدادی در هنگام ارسال درخواست اجرا میشه (حتی قبل از BeginRequest)
پیشنهاد می کنم که این خاصیت رو همیشه غیر فعال کنید و وظیفه ی چک کردن ورودی های کلاینت رو خودتون با برنامه نویسی انجام بدید.

موفق باشید.

mojniknam
یک شنبه 12 اسفند 1386, 13:04 عصر
منم پیشنهاد میکنم اصلا توی وب کانفیگ این کار رو نکنید چون اعتبار سنجی ورودی کل صفحاتتون از کار میافته
بهترین کار اضافه کردن همون کد در اولین خط کدتون هست (توی بخش کد)

مراقب باشید این خاصیت جلوی خیلی از خرابکاری ها رو میگیره

online_mansoor2007
یک شنبه 12 اسفند 1386, 20:29 عصر
همه اینجا دنبال اینن که فقط یه جوری از مشکل خلاص بشن!

فکر کنم اگه بدونیم اصلا این validateRequest کارش چی هست و برای چی این Error اتفاق میافته بیشتر بهمون کمک کنه...

ببین دوست عزیز توی بحث امنیت سایتهای وب و روش های نفوذ راههای زیادی هست . یکی از اون راه ها حملات موسوم به حملات اسکریپتی یا درستش Cross Site Script هست که هکر با نوشتن چند Script می تونه سایتا هک کنه !!! VlidateRequst امکانی هست که می تونه این Script ها مخرب را تشخیص بده ! وقتی شما توسط یک ادیتور مثل FreeTextbox می خواهی اطلاعاتی رو ذخیره کنی ASP.NET اونا بررسی می کنه . بعد چون دستورات script دارای کاراکتر هایی متا <> یا ' و ... هستند ، ASP.NET اون متن شما را با یه حمله اشتباه می گیره و این پیغام رو صادر می کنه . با غیر فعال مردن این گزینه می تونه امنیت سایتتون کم بشه اما راه برای جلوگیری از این حمله ها بازم وجود داره !!

دوستان این اولین جوابی بود که من بعد از یه عمر وقت کردم توی این سایت بدم . اساتید اگه اشکالی در حرفام هست خوشحال می شم بهم بفرمایید .

hmdhamed
دوشنبه 04 دی 1391, 20:47 عصر
قابلیت غیر فعال کردن Validate Request برای یک صفحه خاص در asp.net 4.0 حذف شده برای این کار شما باید برای کل سایتتون از validator ورژن 2.0 استفاده کنید برای این کار در web.config از کد زیر استفاده کنید configuration> <system.web> <pages validateRequest="false" /> </system.web> </configuration>

یا فقط برای صفحه مورد نظر این کار را انجام بدید

<location path="yourpage.aspx"> <system.web> <httpRuntime requestValidationMode="2.0" /> </system.web> </location>

و بعد از کد
validateRequest="false" <@ Page validateRequest="false" %> در صفحه مورد نظرتون که همون yourpage.aspx هست استفاده کنید.



www.info-tech.ir (http://www.info-tech.ir)