Вы всегда должны учитывать контекст, в котором используются данные. Потому что упомянутые функции и методы работают только в том случае, если они используются в соответствии с целью их использования. Это относится не только к HTML и SQL, но и к любому другому языку/контексту.
Что касается XSS, поскольку htmlspecialchars
экранирует специальные символы HTML <
, >
, &
, "
и '
с помощью ссылок на символы HTML. , он защитит вас, только если вы поместите данные в контекст в HTML, где <
, >
, &
, "
или '
являются контекстом разделители, но не помогут, если применяются другие разделители (например, значение HTML-атрибута без кавычек, или вы уже ввели другой контекст в HTML (например, значение HTML-атрибута, которое рассматривается как код JavaScript, как атрибуты события on…
; или в HTML-элементах, которые относятся к другому языку, например , <script>
или <style>
, где применяются другие/дополнительные правила). XSS, где ввод обрабатывается не сервером, а с помощью клиентского JavaScript. Так что бывают ситуации, в которых htmlspecialchars
вам не поможет.
Однако, что касается эмулированных или реальных подготовленных операторов, вы должны быть в безопасности, так как уровень соединения с базой данных или СУБД возьмут на себя заботиться о правильной обработке данных. Если, конечно, вы все еще не создаете подготовленный оператор, используя неправильно обработанные данные.
person
Gumbo
schedule
14.02.2014