2012-10-08 6 views

Répondre

0

Réponse courte:

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

Mais si vous avez besoin d'échapper les caractères spéciaux HTML trop vous pouvez essayer:

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

post-scriptum veillez à ne pas échapper les opérateurs JavaScript en utilisant les remplacements pour les caractères HTML!

+4

-1: Ne pas faire des choses comme ça à la main, parce qu'il est jamais aussi simple qu'il n'y paraît. – kubal5003

+1

Si vous voulez vous-même encoder des attributs, assurez-vous de [échapper tous les caractères spécifiés par 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

Vous pouvez essayer ceci:

npm install node-html-encoder 

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

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