Я очень смущен из-за чего-то, и мне было интересно, может кто-нибудь объяснить.
В PHP я проверяю пользовательский ввод, поэтому htmlentitiies, mysql_real_escape_string используется перед вставкой в базу данных, а не на все, поскольку я предпочитаю использовать обычныевыражения, когда я могу, хотя мне трудно с ними работать.Теперь, очевидно, я буду использовать mysql_real_escape_string, когда данные поступают в базу данных, но не уверен, что я должен использовать htmlentities () только при получении данных из базы данных и отображении их на веб-странице, как это делается до того, как рука изменяет данные, введенные человеком, которыйне сохраняет свою первоначальную форму, которая может вызвать проблемы, если я захочу позже использовать эти данные для использования для чего-то другого.
Так, например, у меня есть гостевая книга с тремя полями: имя, тема и сообщение.Теперь очевидно, что поля могут содержать что-то вроде вредоносного кода в тегах js, в основном все, что сейчас смущает меня, скажем, я злонамеренный человек, и я решил использовать теги js и какой-то вредоносный код js и отправить форму, теперь в основном у меня есть вредоносныебесполезные данные в моей базе данных.Теперь, используя htmlentities при выводе вредоносного кода на веб-страницу (гостевую книгу), это не проблема, потому что htmlentities преобразовал его в безопасный эквивалент, но в то же время у меня есть бесполезный вредоносный код в базе данных, который я бы предпочел не иметь.
Итак, после всего сказанного, мой вопрос: должен ли я принять тот факт, что некоторые данные в базе данных могут быть вредоносными, бесполезными данными и до тех пор, пока я использую htmlentities на выходе, все будет хорошо, или я должен делать что-то еще?aswell?.
Я прочитал так много книг, в которых говорится о фильтрации данных при их получении и экранировании их при выводе, чтобы сохранить исходную форму, но в них приводятся только примеры, например, обеспечение того, что поле является только целым с использованием уже используемых функций.встроенный в php и т. д., но я никогда не находил ничего в отношении обеспечения чего-то вроде гостевой книги, где вы хотите, чтобы пользователи печатали все, что они хотят, а также того, как вы будете фильтровать такие данные помимо mysql_real_escape_string (), чтобы гарантировать, что это не делаетне может разбить запрос к БД?
Может, кто-нибудь, наконец, закроет эту путаницу для меня и скажет мне, что я должен делать и каков наилучший метод?
Спасибо всем, кто может объяснить.
Ура!