Общий способ избежать кавычек в переменной Javascript - PullRequest
2 голосов
/ 26 августа 2011

У меня есть форма, где пользователи могут вводить любой HTML.

var title = "Cool <a href="http://google.com">Check This</a>"

Как видите, переменная имеет ", но может быть и '.Это вызывает ошибку, если есть ".Какой лучший способ исправить это?Сохранение экранированной строки в базе данных, как показано ниже?

$title = str_replace('"', "'", $_REQUEST['title']); // Replace double quote with single quote as js variable above is wrapped with double quotes.

Или экранирование перед отображением на странице?Что-нибудь в jQuery, например, escape, может помочь здесь?

1 Ответ

2 голосов
/ 26 августа 2011
var title="Cool <a href=\"http://google.com\">Check This</a>"

Ну, вы не можете избежать этого, используя JavaScript, потому что JavaScript должен видеть то, что вы хотите избежать, и вы хотите избежать этого.Если вы используете PHP, вы можете использовать addslashes() перед вставкой в ​​JavaScript.

В любом случае, вы должны быть осторожны, разрешив вставить любой HTML.Неправильно экранированный HTML (например, возможность вставки <script>) может позволить выполнять различные опасные действия, например, красть все файлы cookie.

...