2012-10-08 71 views

回答

0

简短的回答:

myString = myString.replace(/'|\\/g, '\\$&'); 

但是,如果你需要HTML特殊字符转义也可以尝试:

myString = myString.replace(/&/g, '&'); 
myString = myString.replace(/</g, '&lt;'); 
myString = myString.replace(/>/g, '&gt;'); 

附:注意不要使用HTML字符的替代品逃脱JavaScript运算符!

+4

-1:不要手工做这样的事情,因为它从来没有像看起来那么简单。 – kubal5003

+1

如果您要自己编码属性,请确保[[转义所有由OWASP指定的字符](https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#RULE_.232 _-_ Attribute_Escape_Before_Inserting_Untrusted_Data_into_HTML_Common_Attributes) –

3

你可以试试这个:

npm install node-html-encoder 

app.locals.encoder = require('node-html-encoder').Encoder; 

<%= encoder.htmlEncode('<foo /> "bar"') %>