Межсайтовый скриптинг может быть легко реализован с помощью htmlentities, есть также функция, называемая стрип-тегами, которая удаляет теги из сообщения, и вы заметите, что это позволяет вам вносить в белый список определенные теги. Если вы решите разрешить использование определенных тегов в будущем, имейте в виду, что атрибуты этих тегов не очищаются каким-либо образом, это можно использовать для вставки javascript на страницу (onClick и т. Д.) И на самом деле не рекомендуется. Если вы хотите использовать форматирование в будущем, я бы порекомендовал реализовать язык форматирования (например, [b] для жирного шрифта или чего-то подобного), чтобы пользователи не могли просто вводить HTML-код на страницу.
Внедрение SQL также легко выполняется, поскольку вы можете подготовить операторы и затем передать пользовательские данные в качестве аргументов подготовленного оператора. Это остановит любой пользовательский ввод от изменения оператора sql.
CSRF (Подделка межсайтовых запросов) - часто упускаемая из виду уязвимость, позволяющая злоумышленнику отправлять данные из учетной записи жертвы с помощью формы. Обычно это делается либо указанием строки get вашей формы для img src (изображение загружается для жертвы, get загружается и форма обрабатывается, но пользователь не знает). Кроме того, если вы используете post, злоумышленник может использовать javascript для автоматической отправки скрытой формы, чтобы сделать то же самое, что и выше. Чтобы решить эту проблему, вам нужно сгенерировать ключ для каждой формы, оставить один в сеансе и один в самой форме (как скрытый ввод). Когда форма отправлена, вы сравниваете ключ из ввода с ключом в сеансе и продолжаете работу, только если они совпадают.
Некоторые охранные компании также рекомендуют использовать атрибут autocomplete = "off" в формах входа, чтобы пароль не сохранялся.