encodeForHtml()
(CF10 में नया) बनाम htmlEditFormat()
, वे अलग कैसे हैं?encodeForHtml() बनाम htmlEditFormat()
उत्तर
मुझे लगता है कि यह जावा के ओडब्ल्यूएएसपी ईएसएपीआई में एनकोडफॉरएचटीएमएल फ़ंक्शन जैसा ही है। एचटीएमएल में सामग्री का उपयोग करने के लिए एक्सएसएस हमले से बचने के लिए और अधिक सुरक्षित।
<cfsavecontent variable="htmlcontent">
<html>
<head>
<script>function hello() {alert('hello')}</script>
</head>
<body>
<a href="#bookmark">Book Mark & Anchor</a><br/>
<div class="xyz">Div contains & here.</div>
<IMG SRC=javascript:alert(&# x27XSS')>
<IMG SRC=javascript:alert('XSS')>
</body>
</html></cfsavecontent>
<cfoutput>#htmleditformat(htmlcontent)#</cfoutput>
<br />
<cfoutput>#encodeforhtml(htmlcontent)#</cfoutput>
एनकोडफ़ोर * फ़ंक्शन OWASP ESAPI पुस्तकालयों पर आधारित होते हैं। मुख्य अंतर यह है कि HTMLEditFormat() केवल बदल देता है "बुरा" तार, &
, <
और अच्छे तार के साथ >
, जैसे &
, <
और >
जबकि EncodeForHTML() होशियार है, एक लाभ किया जा रहा है यह सामग्री पहले से ही एन्कोड किया गया है कि पहचान सकते हैं के साथ की तरह और इसे डबल-एन्कोड नहीं करें।
उदाहरण के लिए, यदि कोई उपयोगकर्ता प्रस्तुत अपनी साइट में निम्न सामग्री यदि:)
<div>
Here is <i>test</i> html content includes<br/>
<script>alert('hello')</script>
Notice how & rendered with both functions.
</div>
दोनों HTMLEditFormat (और EncodeForHTML() ठीक से '<' और '>' वर्ण से बचें होगा। लेकिन HTMLEditFormat() आँख बंद करके सांकेतिक शब्दों में बदलना होगा &
फिर से इस तरह है कि अपने उत्पादन लगता है:
... how &amp; rendered ...
कहाँ यह अन्यथा encodeForHTML() के साथ दिखाई देगा:
... how & rendered ...
HTMLEditFormat() सका यह नहीं बताता कि एम्पर्सेंड पहले से ही एन्कोड किया गया था, इसलिए इसे फिर से एन्कोड किया गया। यह एक मामूली उदाहरण है, लेकिन यह दर्शाता है कि ईएसएपीआई पुस्तकालय कैसे स्मार्ट हैं और इसलिए, अधिक सुरक्षित हैं।
नीचे पंक्ति, CF10 + में HTMLEditFormat() का उपयोग करने का कोई कारण नहीं है। अधिकतम सुरक्षा के लिए, आपको प्रारूप कार्यों को एनकोड फ़ंक्शन के साथ प्रतिस्थापित करना चाहिए।
ऊपर पूर्ण उदाहरण और अधिक पृष्ठभूमि isummation पर कर रहे हैं: http://www.isummation.com/blog/day-2-avoid-cross-site-scripting-xss-using-coldfusion-10-part-1/
- 1. बनाम बनाम
- 2. : बनाम बनाम ::
- 3. स्पाइडरमोन्की बनाम जावास्क्रिप्ट बनाम बनाम?
- 4. Mercurial: भ्रष्टाचार बनाम रिकॉर्ड बनाम qrecord बनाम शेल्व बनाम प्रत्यारोपण बनाम dirstate बनाम कतार
- 5. LINQ बनाम लैम्ब्डा बनाम अज्ञात तरीके बनाम बनाम
- 6. एनएचबीर्नेट एचक्यूएल बनाम मानदंड बनाम क्वेरीरी बनाम लिंक बनाम। प्रदर्शन
- 7. डीकोड और व्याख्या को बनाम बनाम बनाम बनाम
- 8. इनलाइन बनाम __inline बनाम __inline__ बनाम __forceinline बनाम?
- 9. एपीआई बनाम टूलकिट बनाम फ्रेमवर्क बनाम लाइब्रेरी
- 10. pymssql बनाम pyodbc बनाम adodbapi बनाम ...
- 11. एटमिकोस बनाम जेओटीएम बनाम बिट्रोनिक्स बनाम?
- 12. न्यूट बनाम एमबीयूनीट बनाम एमएसटीएस्ट बनाम xUnit.net
- 13. विधि बनाम फंक्शन बनाम प्रक्रिया बनाम कक्षा?
- 14. .NET बनाम एएसपी.नेट बनाम सीएलआर बनाम एएसपी
- 15. 'विधि' बनाम 'संदेश' बनाम 'फ़ंक्शन' बनाम '???'
- 16. अक्ष 2 बनाम वसंत-बनाम बनाम जर्सी
- 17. एसीई बनाम बूस्ट बनाम पोको बनाम WxWidgets
- 18. control.BeginInvoke() बनाम डिस्पैचर बनाम SynchronizationContext बनाम .. - विश्वसनीयता
- 19. ड्रॉप ... बनाम बनाम
- 20. रेल बनाम बनाम
- 21. _Expand बनाम बनाम जीएनयू
- 22. एफ़टीपी कमांड्स बनाम बनाम
- 23. गिट में बनाम बनाम
- 24. फ़ाइल बनाम ब्लॉक बनाम
- 25. क्रिस्टलस्पेस बनाम इरलिच बनाम .....?
- 26. एएसएसईआर बनाम एटलसैट बनाम
- 27. NetSqlAzMan बनाम AzMan बनाम (?????)
- 28. प्रतिनिधि बनाम बनाम। आईफोनओएस
- 29. और बनाम * और | बनाम +
- 30. Exec बनाम ExecWait बनाम ExecShell बनाम nsExec :: Exec बनाम nsExec :: ExecToLog बनाम nsExec :: ExecToStack बनाम ExecDos बनाम ExeCmd
अजीब लगता है कि वे सिर्फ एक और विशेषता के माध्यम से पहले से मौजूद टैग में वृद्धि नहीं होगी यह अधिक सुरक्षित बनाने के लिए या सिर्फ सादा यह बॉक्स से बाहर बढ़ाने के लिए। – Snipe656
ठीक है, encodeForHtml() एक सेट का हिस्सा है: encodeForCss(), encodeForJavascript(), encodeForHtmlAttribute(), आदि। यह भी मूल HTMLEditFormat() से अधिक भागने वाला है। – ale
चूंकि वे अलग-अलग आउटपुट का उपयोग करते हैं, इसलिए उन्होंने मौजूदा टैग को संशोधित करने के बजाय पहले उल्लिखित सेट के हिस्से के रूप में एक नया टैग जोड़ा है। यह मौजूदा कोड के साथ पिछड़ा संगतता बनाए रखने में मदद करता है। –