Проверка ввода пользователя?

Я очень смущен чем-то и мне интересно, может ли кто-нибудь объяснить.

В PHP я проверяю пользовательский ввод, поэтому htmlentitiies mysql_real_escape_string используется перед вставкой в ​​базу данных, но не во всем, так как я предпочитаю использовать регулярные выражения, когда могу, хотя мне трудно с ними работать. Теперь, очевидно, я буду использовать mysql_real_escape_string, когда данные поступают в базу данных, но не уверен, что я должен использовать htmlentities () только при получении данных из базы данных и отображении их на веб-странице, как это делается до того, как рука изменяет данные, введенные человеком, который не сохраняет свою первоначальную форму, которая может вызвать проблемы, если я захочу позже использовать эти данные для использования для чего-то другого.

Так, например, у меня есть гостевая книга с тремя полями: имя, тема и сообщение. Теперь очевидно, что поля могут содержать что-то вроде вредоносного кода в тегах js, в основном, что угодно, теперь меня смущает, скажем, я злонамеренный человек, и я решил использовать теги js и некоторый вредоносный код js и отправить форму, теперь в основном у меня есть вредоносный бесполезные данные в моей базе данных.

Я прочитал так много книг, в которых говорится о фильтрации данных при получении и экранировании их при выводе, чтобы сохранить исходную форму, но в них приводятся только примеры, например, проверка того, что поле представляет собой только int с использованием функций, уже встроенных в php и т. Д., Но я никогда не находил ничего в отношении обеспечения чего-то вроде гостевой книги, в которой вы хотите, чтобы пользователи печатали все, что они хотят, а также того, как вы будете фильтровать такие данные, кроме mysql_real_escape_string (), чтобы убедиться, что они не нарушают запрос к БД? закрыть эту путаницу для меня и скажите мне, что я должен делать и как лучше всего практиковать?

Спасибо всем, кто может объяснить.

Приветствия!

5
задан PHPLOVER 3 September 2010 в 18:33
поделиться