Нужно ли избегать / дезинфицировать следующее?Если так, то какой метод лучше? - PullRequest
0 голосов
/ 04 июня 2011

Нужно ли избегать / дезинфицировать следующее?

  1. $_SERVER['HTTP_USER_AGENT'] в PHP скрипт (не вставлен в базы данных или отображается для пользователя), для Пример:

    if ($_SERVER['HTTP_USER_AGENT']==$xyz) {
            echo "Congrats, you are using XYZ browser";
    } else {
            echo "You are not using XYZ browser.";
    }
    
  2. $_SERVER['HTTP_USER_AGENT'] при помещается в качестве переменной сеанса, для Пример:

    $_SESSION['userAgent']=$_SERVER['HTTP_USER_AGENT']
    
  3. Все, что будет хешироваться, например:

    hash('sha512',$randomDataPostedByUser)
    
  4. Пользовательский ввод предназначен для тела письма (другими словами, я уже взял забота о внедрении заголовков писем).

Если что-либо из вышеперечисленного необходимо удалить / продезинфицировать, какой метод лучше всего подходит для каждого случая?

1 Ответ

4 голосов
/ 04 июня 2011

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

(только для Windows) Когда PHP общается сSMTP-сервер напрямую, если в начале строки найдена полная остановка, он удаляется.Чтобы противодействовать этому, замените эти вхождения двойной точкой.

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

Другие примечания:

  • Ваш первый пример, кажется, не имеет смысла, потому что строки агента пользователя сильно различаются.Вам придется использовать strstr() или регулярные выражения для сопоставления пользовательских агентов.

  • Сохранение пользовательского агента в переменной сеанса может быть плохой идеей, если вы проводите сравнения - просто извлеките его из массива $ _SERVER, когда вам это нужно.

...