Какой из этих двух способов лучше предотвратить атаку xss.
- HTMLEntities при сохранении в дБ
- HTMLEntities при отображении / отражении
2 - вы должны конвертировать в целевой формат в последний момент. Это избавит вас от проблем в будущем, если вы, например, решите, что хотите использовать тот же контент в электронном письме, PDF, что и текст, возвращаемый пользователю для редактирования и т. Д. И т. Д.
Я считаю, что первый лучше, потому что вы можете забыть добавить это при отображении
Вы можете забыть и при вставке в базу данных.
Кроме того, не все данные попадают в базу данных. например Предварительный просмотр данных, которые должны быть вставлены, или данные, возвращаемые в форму из-за ошибок, являются возможными векторами XSS. Вы не хотите иметь дело с такими вещами, как «Кодировать перед помещением в базу данных или при возвращении в документ, если он не пришел из базы данных». Исключения - это лучший способ оказаться в ситуации, когда вы забудете кодировать.