You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The name escapeHTML suggests, that the method may be used to sanitize text-content and get rid of probably malicious nested HTML in BBCode, like [i]<script>javascript:alert("XSS!"</script>[/i]. Unfortunately, the method has an extra turn, to support escaping of probably unsafe href attributes: It also escapes problematic protocols assuming, we are in a URL-context.
Thus, naively reused in custom API the above will escape the text content to:
<script>javascript%3Aalert... (etc.)
The suggestion for clarity is to name the method escapeHTMLAttribute or, as this is considered breaking, at least mention this usage in the JSdoc.
Otherwise, I think the best option for escaping (and I tend to switch to it) is to rely on DOM processing as suggested in #148 (comment).
The text was updated successfully, but these errors were encountered:
DOM processing is not possible because this library is isomorphic. But you can escape html attributes in your own plugin using DOM API.
I have ideas to extract this function to separate folder with browser.js and node.js version (using platform API like DOM or node js builtin functions)
BBob/packages/bbob-plugin-helper/src/helpers.js
Lines 28 to 39 in 3575982
The name
escapeHTML
suggests, that the method may be used to sanitize text-content and get rid of probably malicious nested HTML in BBCode, like[i]<script>javascript:alert("XSS!"</script>[/i]
. Unfortunately, the method has an extra turn, to support escaping of probably unsafehref
attributes: It also escapes problematic protocols assuming, we are in a URL-context.Thus, naively reused in custom API the above will escape the text content to:
The suggestion for clarity is to name the method
escapeHTMLAttribute
or, as this is considered breaking, at least mention this usage in the JSdoc.Otherwise, I think the best option for escaping (and I tend to switch to it) is to rely on DOM processing as suggested in #148 (comment).
The text was updated successfully, but these errors were encountered: