Недавно я начал использовать Angular. Обычно меня используют для очистки любого HTML-кода, хранящегося в моей базе данных. Мой бэкэнд использует php. Я использую HTMLpurifier для очистки HTML. Но когда я использую привязку строки angular, например, объекты html не отображаются правильно:
data = '<data'
//template string binding:
<div>{{data}}</div>
Output on website: <data
Итак, я увидел в другом вопросе, что мне следует использовать: [innerHTML]='data'
Отображать специальные символы HTML в привязках Angular 2?
У меня вопрос: нужно ли вообще очищать мой html? Поскольку кажется, что привязка угловой строки действительно предотвращает появление XSS. Это было бы хорошо, так как это ускорит производительность моего сервера, потому что ему не нужно очищать html.
htmlspecialchars()
лучше, чем HTML Purifier на внутренней стороне - HTML Purifier - это инструмент, который вы должны использовать, если хотите разрешить отображение некоторого HTML. К сожалению, я не могу судить о внешней стороне этого (отсюда комментарий, а не ответ). Я обычно всегда рекомендую выполнить дезинфекцию или ускользнуть в бэкэнде, если вы можете, так как интерфейсом так легко манипулировать, но разумный ли это совет настолько зависит от вашей архитектуры программного обеспечения в целом, что я не уверен, что общий совет поможет здесь. Удачи! - person pinkgothic   schedule 13.08.2020[innerHTML]='data'
. А для обычного ввода текста, по вашему мнению, я должен использоватьhtmlspecialchars()
, что означает, что привязка строки Angular не должна использоваться для предотвращения XSS, верно? - person Stan   schedule 13.08.2020