Вопрос всегда с какой целью? Если вы просто принимаете значения, которые вы получаете от пользователя, и вы не делаете do что-нибудь с ними (вы просто храните и показываете их), тогда нечего дезинфицировать. Если вы дадите этим значениям «активно» сделать «что-то, вы можете захотеть их дезинфицировать, чтобы они не делали то, что вам не нравится.
Например, вы принимаете HTML-ввод от пользователя и хотите HTML-формат, но вы хотите избежать проблем с XSS; в этом случае вам захочется выборочно удалять HTML-элементы, т. е. вы хотите дезинформировать входные данные.
// some HTML is allowed, but not everything
echo remove_unwanted_html_elements($_POST['content']);
Если Ото вы не позволяете HTML вход должен интерпретироваться в любом случае, то есть независимо от посты пользователя только отображается буквально к нему без каких-либо интерпретируется как HTML, то вам не нужно дезинфицировать ничего. Вам может понадобиться только побег содержание в соответствии с его целевым форматом.
// don't care what the user enters, just display it right back as is
echo htmlspecialchars($_POST['content']);
Санитарная относится только если вы оценить значение в каком-то не вполне предсказуемым образом. Санитария означает принять значение и изменить это во что-то еще, обычно удаление что-то от него. Это должно быть очень целенаправленным и целенаправленным, поскольку это может быть очень подверженная ошибкам операция; вы не просто дезинфицируете данные как-то только потому, что. Другая альтернатива проста: валидация, то есть проверка того, что значение соответствует ожидаемым нормам, а иначе отклоняет.
Даже с предполагаемым номером, введенным пользователем и отличным от int
, это очень простая форма дезинфекции; это эффективно, так как это означает, что вы гарантированно получите безвредный номер , но этот номер может иметь или не иметь ничего общего со стоимостью, которую пользователь представил. Валидация может быть лучшим вариантом здесь.
для использования базы данных, вам не нужно дезинфицировать данные, если вы используете [параметризованные утверждения] (http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php/ 60496 # 60496) – mvp
Вы взвешиваете риск того, что может произойти, и насколько это возможно. У Security.stackexchange.com, вероятно, будут хорошие ответы на эту тему. –
В идеале вы не доверяете и дезинфицируете все, что исходит из userland .. и все остальное, вы по-прежнему принимаете с собой щепотку соли и считаете, что это возможно для санитарии – Pudge601