Вопрос

в чем разница (технически) между этими двумя сценариями perl cgi?

родовое слово

и

родовое слово
Это было полезно?

Решение

Предположим, что HTTP-запрос выглядит следующим образом:

родовое слово

При запуске на веб-сервере с обычным интерфейсом CGI переменная среды QUERY_STRING будет иметь значение foo=bar&baz=buz.URL-адрес переменной среды не будет отключен.Печать его с помощью $cgi->pre(...) просто заключит переменную env в теги <pre></pre> (или один тег <pre />, если значение равно или приведено к пустой строке.

$cgi->param(), с другой стороны, и при условии, что контекст списка без аргументов, вернет список безэкранированных URL имен параметров CGI, в данном случае foo иbar.

(Обратите внимание, что $cgi->pre(...) не HTML-экранирования своего аргумента, поэтому $ENV{QUERY_STRING} может просто поставить под угрозу ваш cgi небольшой инъекцией межсайтового скриптинга.)

Другие советы

Метод param объекта CGI возвращает список всех параметров запроса, включая параметры GET и POST.Если вы не передаете аргумент, в этом случае он ищет параметр с таким именем и возвращает значение.

Переменная среды QUERY_STRING содержит неанализируемую строку запроса.

Это было бы довольно очевидно, если бы вы попробовали рассматриваемый код.

Вот документация для создания кодового кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top