मेरे पास एक एमवीसी.नेट 4 वेब सर्वर है जो अनुरोध डेटा के रूप में JSON स्वरूपित स्ट्रिंग के साथ HTTP POST अनुरोध स्वीकार करता है। मैं जेएसओएन स्ट्रिंग पर कुछ रेगेक्स द्वारा अनुरोध को अवरुद्ध करने के लिए अनुरोध सर्वर से हिट करने से पहले आईआईएस स्तर में एक नियम जोड़ना चाहता हूं। क्या यह संभव है?जेएसओएन पेलोड फ़ील्ड द्वारा आईआईएस 8 ब्लॉक अनुरोध
उत्तर
मैं बनाने और एक कस्टम Http Module आपकी समस्या का समाधान कर सकते हैं जोड़ने लगता है कि देखते हैं। BeginRequest
और EndRequest
घटनाओं के जवाब में प्रत्येक अनुरोध पर एक HTTP मॉड्यूल कहा जाता है।
धन्यवाद - मैं वास्तव में आईआईएस स्तर पर इसे अवरुद्ध करने का एक तरीका ढूंढ रहा हूं, न कि वेब सर्वर। क्या BeginRequest घटना करता है? – Orr
जब आप आईआईएस स्तर कहते हैं .. क्या आपका मतलब केवल एक विशिष्ट वेबसाइट के लिए अवरुद्ध करना है? –
http://www.iis.net/configreference/system.webserver/modules या का उपयोग करें http://www.iis.net/learn/extensions/url-rewrite-module/request-blocking-rule-template –
जब से तुम ने कहा:
मैं इसे वेब सर्वर स्तर प्रत्येक अनुरोध के लिए एक और धागा बनाने के लिए की आवश्यकता होगी, के और अधिक लोड शून्य करने के लिए आईआईएस स्तर में होना चाहता हूँ।
: कारण मैं कुछ अनुरोध को ब्लॉक करना चाहते है कि वे के लिए प्रासंगिक मेरे ऐप अब और उच्च लोड में आते हैं और मैं उन्हें ग्राहकों ओर
से नहीं रोक सकता नहीं हैं, आप 2 विकल्प हैं
- अनुरोध छनन
- URL पुनर्लेखन
कृपया kno करने के लिए सावधानी से अध्ययन IIS 7.0 Request Filtering and URL Rewriting लेख उनके बारे में सबसे महत्वपूर्ण चीजें हैं। यदि आपका चयन सर्वोच्च प्राथमिकता वाला पहला होगा, तो <denyQueryStringSequences>
उपयोगी होगा जहां इसमें कुछ फ़िल्टरिंग आवश्यकताएं शामिल होंगी। और regex के साथ काम करने के लिए, आपको दूसरे का उपयोग करने की आवश्यकता है। निम्न नमूना नियम <rewrite>
के तहत अनुरोध पर कार्रवाई करने से रोक सकते हैं:
<rule name="Block Bad Request Strings" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{QUERY_STRING}" pattern="id=([^\"]*[^-]?>)|(?:[^\\w\\s]\\s*\\\/>)|(?:>\") />
</conditions>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden: Access is denied." statusDescription="You do not have permission" />
</rule>
अधिक जानकारी के लिए URL Rewrite Module Configuration Reference
- 1. AFNetworking जेएसओएन पेलोड अमान्य
- 2. GWT अनुरोध पेलोड
- 3. आईआईएस 7 लॉग अनुरोध बॉडी
- 4. आईआईएस 8
- 5. आईआईएस 8
- 6. HTTP अनुरोध पेलोड प्राप्त करें
- 7. जावा 8 लैम्बडास एकाधिक फ़ील्ड द्वारा समूहित
- 8. एमवीसी 3 जेएसओएन कॉल आईआईएस
- 9. आईआईएस 8
- 10. जेएसओएन पोस्ट अनुरोध
- 11. मैं वर्तमान में आईआईएस 8
- 12. मैं कैसे http पोस्ट अनुरोध के अनुरोध पेलोड
- 13. आईआईएस 8 को web.config
- 14. अनुरोध URL आईआईएस 7
- 15. आईआईएस एक्सप्रेस अनुरोध
- 16. जेएसओएन बूलियन
- 17. एएसपी.नेट + एज़ूर 400 खराब अनुरोध जेएसओएन डेटा
- 18. एआरआर 3 के साथ टोमकैट 8 + आईआईएस 8 पर वेबसाइट्स
- 19. आईओएस 8 समापन ब्लॉक
- 20. स्प्रिंग एमवीसी: जेएसओएन अनुरोध निकाय को deserialize
- 21. अनुरोध हेडर फ़ील्ड $ http
- 22. पायथन: जेएसओएन (यूआरएल द्वारा लौटाया गया) सूची
- 23. एक गोजल अनुरोध के पेलोड का निरीक्षण कैसे करें
- 24. विंडोज 8 आईआईएस एएसपीनेट ऐप
- 25. क्रॉस मूल अनुरोध टॉमकैट 8
- 26. आईआईएस प्रसंस्करण पाइपलाइन द्वारा प्रमाणित WAS द्वारा होस्ट की गई डब्ल्यूसीएफ सेवा के अनुरोध हैं या ...?
- 27. इंटरनेट एक्सप्लोरर 8 AJAX अनुरोध
- 28. म्यूएल ईएसबी: स्ट्रीम पेलोड
- 29. आईआईएस 8 401.3 एसीएल और स्थिर सामग्री
- 30. वेब सेवा जेएसओएन
** उस JSON स्ट्रिंग पर कुछ रेगेक्स द्वारा अनुरोध को अवरुद्ध करने के लिए ** कृपया बताएं कि इसका क्या अर्थ है ... –
@DaveAlperovich अनुरोध में एक JSON स्वरूपित स्ट्रिंग बॉडी है। इसलिए यदि वह स्ट्रिंग कुछ रेगेक्स से अनुरोध को रद्द कर देती है, वैसे ही आप क्वेरी यूआरएल को रेगेक्स – Orr
से मेल कर सकते हैं क्या आप ओविन का उपयोग कर रहे हैं? या आप HttpAplication.BeginRequest इवेंट का उपयोग कर सकते हैं? क्या आप कृपया विस्तार से बता सकते हैं कि आईआईएस स्तर पर क्यों होना चाहिए? – milanio