Данные, поступающие от пользователей, потенциально опасны, но это не значит, что они опасны всегда - это зависит от того, что вы с ними делаете.
ХотяФильтрация / внесение в белый список / дезинфекция данных - это всегда хорошая практика, абсолютный минимум, который вы должны сделать, - это избегать его непосредственного использования для действий, которые активно взаимодействуют с окружением: работа с файловой системой (включает в себя, fopen, file_ (get | put) _contents и т. д..), база данных, генерирующая вывод HTML и т. д.
Конечно, разные случаи требуют разных мер: например, нет смысла использовать (как я часто вижу) htmlspecialchars()
при построении базы данных.запросы - цель этой функции состоит в том, чтобы избежать внедрения кода в вывод браузера, поэтому его следует использовать для этого.
Короче говоря, нет волшебного ответа в одном предложении, вы должны знать, что и когда опасно, идействовать соответственно.