Ради Одина, пожалуйста, не очищайте входные данные. Не бойтесь, что пользователи вводят в ваши формы все, что захотят.
Пользовательский ввод не является небезопасным. Принятый ответ приводит к таким веб-интерфейсам, как мой банк, где г-н О'Рейли не может открыть счет, потому что в его имени есть нелегальный персонаж. Что небезопасно, так это то, как вы используете пользовательский ввод.
Правильный способ избежать SQL-инъекций - использовать подготовленные операторы. Если уровень абстракции вашей базы данных не позволяет вам использовать их, строго используйте правильные экранирующие функции (myslq_escape et al).
Правильный способ предотвращения XSS-атак никогда не бывает подобен стрип-тегам (). Избегайте всего - в PHP вам нужно что-то вроде htmlentities (), но это зависит от того, выводите ли вы строку как часть текста HTML, атрибут HTML или внутри Javascript и т. Д. Используйте правильный инструмент для правильного контекста. И НИКОГДА не распечатывайте вводимые пользователем данные прямо на странице.
Наконец, взгляните на 10 самых уязвимых мест веб-приложений и сделайте все возможное, чтобы их предотвратить. http://www.applicure.com/blog/owasp-top-10-2010