Я бы посоветовал заняться ограниченным html-кодированием на стороне клиента, что довольно просто для jquery, связывая обработку с отправкой формы.
Что я имею в виду под «ограниченным»?Амперсанды, угловые скобки и кавычки должны быть закодированы, но не символы Unicode.Вы указываете на то, что на самом деле числовые escape-коды являются злыми и отклоняются, в отличие от их неэкранированных эквивалентов!
Вы можете запустить отправляемую строку с помощью функции javascript, аналогичной приведенному ниже коду, даваязначение, которое прошло бы проверку запроса:
function safeString(s) {
return s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g, """);
}
Это может вызвать у вас горе, если после сохранения или выполнения какой-либо серверной магии с переданным значением вы захотите повторно отобразить его внутривход.Позвольте мне уточнить: если вы просто поместите строку, закодированную таким образом, в пустой абзац, она будет прекрасно отображаться;однако, если вы сбросите его в текстовое поле, вы увидите <</strong> вместо <</strong>
Как ни странно, при написании последнего предложения мне пришлось набрать & lt; и <</strong> соответственно ...