Если вы попытаетесь очистить все данные на входе, у вас будет очень трудное время. Существует множество хитростей, связанных с кодировкой символов, которые позволят людям обходить ваши фильтры. Этот впечатляющий список - это лишь некоторые из множества вещей, которые можно сделать в виде SQL-инъекций. Вы также должны предотвратить внедрение HTML, JS и, возможно, другие. Единственный надежный способ сделать это - закодировать данные, где они используются в вашем приложении. Кодируйте весь вывод, который вы пишете на свой веб-сайт, кодируйте все ваши параметры SQL. Будьте особенно осторожны с последним, поскольку нормальное кодирование не будет работать для нестроковых параметров SQL, как объяснено в этой ссылке. Используйте параметризованные запросы, чтобы быть полностью безопасными. Также обратите внимание, что теоретически вы можете кодировать свои данные в тот момент, когда пользователь вводит их, и хранить их в базе данных, но это работает только в том случае, если вы всегда собираетесь использовать данные способами, использующими этот тип кодирования (например, HTML). кодировка, если она когда-либо будет использоваться только с HTML; если она используется в SQL, вы не будете защищены). Это частично объясняет, почему практическое правило никогда не хранит закодированные данные в базе данных и всегда кодирует при использовании.