خطای A potentially dangerous Request.Form
سلام
من یک 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">...").
سلام . جواب سوال دوست عزیزم
نقل قول:
نوشته شده توسط
Neo Persian
همه اینجا دنبال اینن که فقط یه جوری از مشکل خلاص بشن!
فکر کنم اگه بدونیم اصلا این validateRequest کارش چی هست و برای چی این Error اتفاق میافته بیشتر بهمون کمک کنه...
ببین دوست عزیز توی بحث امنیت سایتهای وب و روش های نفوذ راههای زیادی هست . یکی از اون راه ها حملات موسوم به حملات اسکریپتی یا درستش Cross Site Script هست که هکر با نوشتن چند Script می تونه سایتا هک کنه !!! VlidateRequst امکانی هست که می تونه این Script ها مخرب را تشخیص بده ! وقتی شما توسط یک ادیتور مثل FreeTextbox می خواهی اطلاعاتی رو ذخیره کنی ASP.NET اونا بررسی می کنه . بعد چون دستورات script دارای کاراکتر هایی متا <> یا ' و ... هستند ، ASP.NET اون متن شما را با یه حمله اشتباه می گیره و این پیغام رو صادر می کنه . با غیر فعال مردن این گزینه می تونه امنیت سایتتون کم بشه اما راه برای جلوگیری از این حمله ها بازم وجود داره !!
دوستان این اولین جوابی بود که من بعد از یه عمر وقت کردم توی این سایت بدم . اساتید اگه اشکالی در حرفام هست خوشحال می شم بهم بفرمایید .
نقل قول: سلام . جواب سوال دوست عزیزم
قابلیت غیر فعال کردن 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