Сообщение от zebra741258963
|
Там может быть любая фраза которую впишет пользователь... К примеру:
<a onClick="x('Мама мыла раму')">Мама мыла раму</a>
и таких несколько сот строк.
Я просто не понимаю как я должен парсить текст чтобы недопустить ошибки.
На данный момент на момент ввода я:
1) Заменяю все символы "<" на <
2) Удаляю одинарную и двойную кавычку, а также
�З4;
�З9;
&quоt;
&аpos;
я понимаю что коды \u0027 и \u0022 какраз в этом случае полностью безопасны.
А что ещё надо удалять?
|
1. Не повторяйте в html-коде одну и ту же текстовую строку два раза. Во-первых, это избыточно, во-вторых, имеете те проблемы, которые имеете. Любую строку можно получить в javascript-переменную не передавая её в виде параметра js-функции, а вынимая текст из html-элемента:
<html>
<body>
<script>
function x(o)
{
var s = o.innerHTML;
alert(s);
};
</script>
<a onClick=x(this)>Мама ' мыла " раму - " - ' </a>
</body>
</html>
2. "На данный момент
на момент ввода я ... Заменяю все символы..."
Это плохо. После таких замен Вы столкнетесь с последующей проблемой хранения данных в базе данных и поиска по ней. А Вы же храните строки в базе? Например, слово Д'Артаньян в базе сохранится как Д'Артаньян, соответственно, поиск "Д'Артаньян" ничего не найдет.