2011-06-11 12 views
7

के लिए सत्यापन समस्या का अनुरोध करें मेरे पास बहुत सारे बाल नहीं हैं, लेकिन मैं इसे खींच रहा हूं कि इसमें से कितना शेष बचा है।केवल Googlebot

मेरे MVC3 एप्लिकेशन नियंत्रक तो

/Image/ShowImage/25-000252?t=a&o=1 

एक है पूर्वनिर्धारित छवि आकार, ओ के लिए है कि आइटम

छवि छवि आदेश है की तरह कार्रवाई के माध्यम से छवियों में कार्य करता है, ShowImage कार्रवाई जो FilePathResult देता है। यह सब बिना किसी समस्या के काम करता है सिवाय इसके कि जब Googlebot साथ आता है। फिर अचानक अनुरोध सत्यापन

A potentially dangerous Request.Path value was detected from the client (?). 

मेरी समझने की क्षमता से परे और क्यों दोनों हैं।

शोइमेज एक्शन में वैधता इनपुट (गलत) है, web.config में httpRuntime requestValidationMode = "2.0" है लेकिन कुछ भी मदद नहीं करता है।

+1

@vnuk हल हो गई है, अनुरोध है कि विफल रहता है के लिए अनुरोध किया पथ क्या है? क्या आप वाकई पोस्ट किए गए उदाहरण की तरह हैं? मैं पूछ रहा हूं क्योंकि त्रुटि के लिए स्पष्ट कारण यह है कि बुराई Googlebot वास्तव में एक खतरनाक पथ का अनुरोध करता है। :) – bzlm

+0

हाँ, मुझे यकीन है। यह केवल Googlebot-Image/1.0 के लिए होता है, अन्य सभी पृष्ठों को बिना किसी समस्या के Googlebot द्वारा क्रॉल किया जाता है – Vnuk

+1

@vnuk अजीब। ऐसा लगता है जैसे Googlebot एम्पर्सेंड या कुछ से बच रहा है, जो इसे ट्रिगर करेगा। मुझे लगता है कि आपको इस त्रुटि को मांग पर पुन: उत्पन्न करने में परेशानी है, अन्यथा आप [पथ में अनुमत वर्णों] के साथ खेलने का प्रयास कर सकते हैं (http://msdn.microsoft.com/en-us/library/system.web.configuration .httpruntimesection.requestpathinvalidcharacters.aspx)। – bzlm

उत्तर

1

ऐप के लिए ट्रेसिंग चालू करें या elmah इंस्टॉल करें या 500 स्थिति कोड लौटने वाले पथ को देखने के लिए iis के लॉग में देखें। फिर यह स्पष्ट होना चाहिए कि क्या बदलने की जरूरत है।

+0

ट्रेसिंग के बारे में नहीं सोचा था, यह कोशिश करेगा। – Vnuk

+0

elmah आपको यूआरएल नहीं देता है?यदि आप इसके आसपास काम करना चाहते हैं (मुझे अत्यधिक सुझाव है कि आप इन पर सुरक्षा में बने रहें) अमान्य पथ वर्णों को हटाने के लिए एक समाधान का वर्णन किया गया है: http://www.christophercrooker.com/use-any-characters-you- चाहते हैं-your-urls-as-aspnet-4-and-iis ध्यान दें - यह केवल सामान्य अनुरोध सत्यापन नहीं है। यह बदल रहा है कि पथ में कौन से पात्रों की अनुमति है। सामान्य अनुरोध सत्यापन में पूर्व के लिए चेक भी शामिल है। <एक्स और विफल होगा अगर <और एक और चरित्र पाए जाते हैं। आपका मामला पथ विशिष्ट है, इसलिए आपको एक अलग कार्रवाई की आवश्यकता है (यूआरएल देखें) –

+0

/छवि/शो इमेज/25-000252? टी = ए और ओ = 1 यूआरएल है (मैंने http भाग को तोड़ दिया) अब यह मेरे बदलाव की तरह दिखता है (जोड़ा /) चाल चल रही है। हेवन ने अब 12h के लिए "खतरनाक अनुरोध। पैथ" देखा है, उम्मीद है कि यह इस तरह से रहता है :) – Vnuk