Вы только выполняете htmlspecialchars () на выводе или есть ли другая функциональность, которую Вы также делаете?

Проблемы:
  • Отправка регулярного выражения «объект» вместо типа «строка» в findText()
  • Неверный синтаксис для нечувствительности к регистру.

Решение:

  • Использовать правильный синтаксис re2
  • Отправлять регулярное выражение в виде строки. Это означает, что специальные символы \s экранируются двойным образом \\s

    findText('(?i)Apple') //matches APPLE or AppLe 
    

Читать:

5
задан strager 8 February 2009 в 21:33
поделиться

3 ответа

Я обычно использую

htmlspecialchars($var, ENT_QUOTES) 

на полях ввода. Я создал метод, который делает это, потому что я использую это много, и он делает код короче и более читаемый.

10
ответ дан 13 December 2019 в 05:43
поделиться

Вы не должны чистить текст на выводе, это должно произойти на входе. Я использую фильтр, который фильтрует весь вход к приложению. Это настраивается так, чтобы это могло позволить определенные теги/данные через при необходимости (скажите для wysiwig редактора).

Необходимо сделать как можно меньше обработки текста на выводе так, чтобы Вы гарантировали скорость. Обработка его однажды создает намного меньше деформации, затем обрабатывающей его 500,0000 раза.

-5
ответ дан 13 December 2019 в 05:43
поделиться

Позволяет имеют быстрый обзор того, ПОЧЕМУ выход необходим в различных контекстах:

Если Вы находитесь в разграниченной строке кавычки, необходимо смочь выйти из кавычек. Если Вы находитесь в xml, то необходимо разделить "содержание" от "разметки", Если Вы находитесь в SQL, необходимо разделить "команды" от "данных", Если Вы находитесь на командной строке, необходимо разделить "команды" от "данных"

Это - действительно основной аспект вычислений в целом. Поскольку синтаксис, который разграничивает данные, может произойти В ДАННЫХ, должен быть способ дифференцировать ДАННЫЕ из СИНТАКСИСА, следовательно, выйдя.

В веб-программировании общие случаи выхода: 1. Вывод текста в HTML 2. Вывод данных в HTML-атрибуты 3. Вывод HTML в HTML 4. Вставка данных в Javascript 5. Вставка данных в SQL 6. Вставка данных в команду оболочки

У каждого есть различная безопасность последствия, если обработано неправильно. ЭТО ДЕЙСТВИТЕЛЬНО ВАЖНО! Давайте рассмотрим это в контексте PHP:

  1. Текст в HTML: htmlspecialchars (...)

  2. Данные в HTML-атрибуты htmlspecialchars (..., ENT_QUOTES)

  3. HTML в HTML Пользуется библиотекой, такой как HTMLPurifier, чтобы ГАРАНТИРОВАТЬ, что только допустимые теги присутствуют.

  4. Данные в JavaScript я предпочитаю json_encode. При размещении его в атрибут все еще необходимо использовать № 2, такой как

  5. При вставке данных в SQL Каждый драйвер имеет Escape () какая-то функция. Это является лучшим. Если Вы работаете в нормальном latin1 наборе символов, addslashes (...) подходит. Не забывайте кавычки ВОКРУГ addslashes () вызов:

    "INSERT INTO table1 УСТАНОВИЛ field1 = '". addslashes ($data)"'".

  6. Данные по командной строке escapeshellarg () и escapeshellcmd () - читают руководство

- Примите их близко к сердцу, и Вы устраните 95%* общих рисков безопасности в Интернете! (* предположение)

7
ответ дан 13 December 2019 в 05:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: