2011-01-07 38 views
10

से संभावित रूप से खतरनाक अनुरोध। फॉर्म वैल्यू का पता लगाया गया था। मैं अपने एमवीसी.NET साइट पर wysiwyg संपादक के रूप में CKEditor/CKFinder का उपयोग कर रहा हूं।क्लाइंट

मैं [ValidateInput(false)] निर्धारित किया है और यह काम करता है जब वह स्थानीय स्तर पर डिबगिंग, लेकिन मैं निम्नलिखित त्रुटि जब मैं साइट को प्रकाशित किया है प्राप्त करते हैं:

A potentially dangerous Request.Form value was detected from the client (message="<p> 
<em>Testing</e..."). 

किसी को समझा सकता है क्यों प्रकाशित साइट स्थानीय स्तर पर साइट से अलग है, खासकर जब मैंने [ValidateInput(false)] सेट किया है?

* अद्यतन: * मैं .NET 3.5 का उपयोग कर रहा हूं इसलिए [ValidateInput(false)] बॉक्स को बाहर नहीं करना चाहिए?

+0

web.config जोड़ा जा रहा है सब पर सत्यापन अक्षम नहीं करेंगे पृष्ठ जब तक कि आप कार्रवाई से पहले '[ValidateInput (false)] निर्दिष्ट नहीं करते हैं। – Vishal

+1

क्या आप पुष्टि कर सकते हैं कि .NET AppPool जो आपकी प्रकाशित साइट का उपयोग कर रहा है .NET 4.0 के अंतर्गत नहीं चल रहा है? मुझे लगता है कि यह है। –

+0

धन्यवाद, स्पष्ट रूप से होस भाग गया .Net 4.0। – Dofs

उत्तर

7

अपने web.config को यह करें:

<httpRuntime requestValidationMode="2.0" /> 
+0

क्षमा करें मैं यह उल्लेख करना भूल गया था कि मैं इसे सभी पृष्ठों पर अक्षम नहीं करना चाहता था। इसके अलावा मेरा प्रश्न यह भी था कि प्रकाशित होने की तुलना में डीबगिंग के दौरान यह अलग क्यों था। – Dofs

+0

यह सभी पृष्ठों के लिए इसे चालू नहीं करेगा। यह सिर्फ आपकी विशेषता [ValidateInput (false)] काम करेगा। http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx –

+0

मैं MVC.Net 3.5 का उपयोग कर रहा हूं, इसलिए [ValidateInput (false)] बॉक्स से बाहर काम नहीं करना चाहिए? – Dofs

21

आप htmlEncodeOutput संपत्ति की स्थापना की कोशिश की है?

> CKEDITOR.replace('editor1', { 
> htmlEncodeOutput: true }); 

यह आउटपुट एन्कोड करना चाहिए और आप अनुरोध ValidationMode को सेट करने से बचने में सक्षम होना चाहिए।

इसके लिए

प्रलेखन यहाँ है: ckEditor documentation

+6

+1 यह मेरी राय में सत्यापन को अक्षम करने से बेहतर है। – ashes999

+1

मैं @ ashes999 से सहमत हूं। पोस्ट के भविष्य के पाठकों की मदद करने के लिए दो संकेत ** 1 ** 'editor1' ckeditor नियंत्रण की आईडी है ** 2 ** _System.Net.WebUtility.HtmlDecode_ के साथ POST के बाद प्राप्त मान को डीकोड करना न भूलें अन्यथा आप शायद एक ही त्रुटि जारी रहेगा। –

+0

मैं CKEDITOR.replace() का उपयोग नहीं कर रहा हूं, मैं