Есть несколько способов справиться с этим.
Прежде всего, давайте проясним: сделать это безопасным способом, это не может быть сделано в javascript, только на стороне сервера - использование javascript для безопасного обеспечения очистки входных данных обречено на провал
- Кодирование символов, составляющих html, при выводе пользовательских данных
Когда сгенерированные пользователем данные выводятся на вашу веб-страницу, измените несколько символов, чтобы сделать их безопасными. А именно символы <
, >
и &
должны быть изменены на <
, >
и &
соответственно.
Это лучший способ сделать это, если пользователю разрешено редактировать текст, поскольку вы фактически не изменяете текст в хранилище, и вы можете позволить пользователю изменять неизмененный текст с помощью textarea
- Кодирование символов, составляющих html, при сохранении пользовательских данных
Сделайте то же самое, что и выше, но сделайте это, прежде чем сохранять данные в вашей базе данных.
Это повышает производительность, поскольку вам не нужно кодировать его каждый раз, когда вы выводите его, но это не позволит вашим пользователям редактировать неизмененный текст, что может быть серьезным недостатком, в зависимости от того, что вы создаете
- Обрезать символы перед выводом или сохранением
Удалять символы <
и >
перед выводом или хранением - на мой взгляд, это не очень хорошее решение, поскольку это ненужное изменение пользовательского ввода, но некоторые люди предпочитают его.