Intereting Posts
Изображение обреза в круге (php) Изображение невозможно отобразить, поскольку оно содержит ошибку в php gd Почему спецификация ISO-8601 выглядит повсеместно игнорируемой, когда речь идет о десятичных знаках? Проверьте, содержит ли ассоциативный массив значение и извлекает ключ / позицию в массиве Как избежать динамических свойств в PHP (поднять ошибку при установке необъявленного свойства) Как получить список запущенных php-скриптов с помощью PHP exec ()? Загрузить экземпляр CodeIgniter в WordPress Формат даты и времени PDO для MSSQL / dblib Сложный выбор запроса для инвентаря Как установить php 5.3.14 ubuntu 12.10 PHP & MYSQL: как разрешать неоднозначные имена столбцов в операции JOIN? Виджеты WordPress Нужна помощь с введением нового элемента XML для детей с помощью PHP Как я могу вернуть результаты поиска mysql, где отображаются только столбцы с ненулевыми элементами Написание поискового запроса PDO из массива PHP

Предупреждение «Не обращайтесь к суперглобальному $ _POST массиву напрямую» на Netbeans 7.4 для PHP

У меня есть предупреждение об этом в Netbeans 7.4 для PHP, в то время как я использую $ _POST , $ _GET , $ _SERVER , ….

Не удается получить суперглобальный массив $ _POST

Что это значит? Что я могу сделать, чтобы исправить это предупреждение?

Изменить: Код примера события по-прежнему показывает это предупреждение.

    filter_input(INPUT_POST, 'var_name') вместо $_POST['var_name']
    filter_input_array(INPUT_POST) вместо $_POST

    Хотя немного поздно, я столкнулся с этим вопросом, ища решение для той же проблемы, поэтому надеюсь, что это может помочь …

    Нашел себя в той же темноте, что и ты. Просто нашел эту статью, в которой объясняются некоторые новые намеки, введенные в NetBeans 7.4, включая этот:

    https://blogs.oracle.com/netbeansphp/entry/improve_your_code_with_new

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

    Например, где у меня было:

     $_SERVER['SERVER_NAME'] 

    Вместо этого я поставил:

     filter_input(INPUT_SERVER, 'SERVER_NAME', FILTER_SANITIZE_STRING) 

    У вас есть filter_input и filter doc:

    http://www.php.net/manual/en/function.filter-input.php

    http://www.php.net/manual/en/filter.filters.php

    Я согласен с другими респондентами в том, что в большинстве случаев (почти всегда) необходимо дезинформировать ваш вход.

    Но рассмотрите такой код (это для контроллера REST):

     $method = $_SERVER['REQUEST_METHOD']; switch ($method) { case 'GET': return $this->doGet($request, $object); case 'POST': return $this->doPost($request, $object); case 'PUT': return $this->doPut($request, $object); case 'DELETE': return $this->doDelete($request, $object); default: return $this->onBadRequest(); } 

    Было бы нецелесообразно применять здесь санитарию (хотя это и не сломало бы ничего).

    Итак, следуйте рекомендациям, но не слепо – скорее поймите, для чего они предназначены 🙂