Server Error in '/' Application. A potentially dangerous Request.Form معالجة الخطأ



ينتج هذا الخطأ عندما يقوم المستخدم بإدخال قيمة داخل Textbox بحيث تكون هذه القيمة عبارة عن وسم HTML مثل <br> وكذلك الوسم <script> . وينتج الخطأ بسبب أن ASP.NET  تمنع أي محاولة العبث بحماية التطبيق ممن خلال حقن  cross site scripting  وغيرها باستغلال  Textbox .
 
لحل هذه المشكلة يجب إجراء ما يلي :
·        سوف نقوم بوضع قيمة  False للخاصية ValidateRequest في الصفحة التوجيهية التي تحتوي على كود HTML , بذلك سوف يتم التطبيق على مستوى هذه الصفحة فقط .

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"  
 Inherits="_Default" ValidateRequest="false" %>  

·        الخيار الثاني هي وضع الخاصية فلذات Requset بالقيمة False في ملف الإعدادات Web.config  , ولكن هنا يتم تعطيل هذه الخاصية على مستوى التطبيق ككل .

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

·        إذا كنت لاتريد تعطيل الخاصية السابقة , فعليك وضع تعبير للتحقق أو استخدام ()Replace على القيم المدخلة بحيث تمنع كتابة الحروف الخاصة بوسوم HTML أو أي سكربت يتم إدخاله في Textbox.

 <asp:textbox id="TextBox2" runat="server"  
        onblur="this.value = this.value.replace(/&lt;\/?[^>]+>/gi, '');">  
 </asp:textbox>  
             


شارك الموضوع
تعليقات