Предотвращение XSS является другим вопросом от проверки входа.
Относительно XSS: Вы не должны пытаться проверить , вводит для XSS или связанного использования. Необходимо предотвратить использование XSS, Внедрение SQL и так далее путем выхода правильно при вставке строк на различный язык, где некоторые символы являются "волшебными", например, при вставке строк в HTML или SQL. Например, имя как O'Reilly является совершенно допустимым входом, но могло вызвать катастрофический отказ или хуже, если вставлено незавершенный в SQL. Вы не можете предотвратить такие проблемы путем проверки входа.
Проверка ввода данных пользователем имеет смысл предотвращать то, чтобы избегать или некорректные данные, например, пользователя, пишущего "asdf" в поле индекса и так далее. Адреса электронной почты Wrt., синтаксис так сложен, хотя, что он не предоставляет много преимущества для проверки его с помощью regex. Просто проверьте, что это содержит.
Кроме того, если Вы используете JpaRepository
, можно легко проверить существование объекта через ORM. Вот пример Kotlin:
interface UserRepository : JpaRepository<User, Long> {
fun existsByUsername(username: String): Boolean
}