После всех хороших советов, приведенных здесь, в том, что вы избегаете своих пользовательских данных перед тем, как поместить их в базу данных, вы должны как-то подумать со второй стороной проблемы.
Побег выходы
Это означает, что каждый выход вашего приложения должны быть экранированы на основании правила этого формата вывода. Например, когда вы эхо-код для HTML-страницы вы должны избегать его с помощью htmlentites, так что любой HTMl, содержащийся в ваших данных, не будет html в выводе. И для выхода csv вы должны избегать цитат или запятых, для JSON вам также следует избегать вещей, и т. Д. Каждый выход имеет свои правила.
Эта вещь когда-то используется для хранения данных, которые потенциально опасны (код js, код HTML) в БД, только предотвращая внедрение SQL перед вставкой. И затем убедитесь, что он правильно экранирован до выхода.
Другим способом мышления является предотвращение любого js или HTML-кода перед хранилищем базы данных, но вы все равно должны избегать вывода (в случае).
Говоря о фреймворках, вы должны взглянуть на Zend Framework на Zend_Filter, Zend_Validate и функции escape на представлениях.
Почему downvote? –
Я тоже не знаю. Почему? –