В принципе, вам нужно санировать вход пользователя всякий раз, когда вы его отправляете.
Когда вы помещаете его в свою базу данных, вам необходимо предотвратить SQL-инъекцию, указав специальные символы SQL (подготовленные операторы сделают это для вас). Когда вы отправляете его в браузер, вам нужно избегать специальных символов HTML (у PHP есть функции для этого), чтобы предотвратить инъекцию скрипта.
Могут быть и другие места, где вам также нужно избегать специальных символов. Например, если вы отправляете комментарии к сценарию Bash на сервере для выполнения какой-либо обработки. В этом случае вам нужно будет указывать или удалять специальные символы, относящиеся к Bash.
Важно не указывать/избегать на неправильной стадии: например, не выходить из объектов HTML, когда вы помещаете их в базу данных, если вы не уверены в том, что делаете. Когда вы вытаскиваете его из базы данных и готовитесь отправить его в браузер или просто избегаете вообще, очень легко случайно избежать чего-либо, если вы отправляете сообщение об ошибке при сбое базы данных (это может привести к уязвимости XSS). Сделайте свое побег в последний момент, и вы, скорее всего, избегаете этих подводных камней.
Я забыл добавить, я использую redbean, который построен на PDO. – jonnnnnnnnnie 2010-12-05 02:32:01