Предположим, HTTP-запрос выглядит так:
GET my.cgi?foo=bar&baz=buz
При запуске под веб-сервером с обычным CGI-интерфейсом переменная среды QUERY_STRING будет foo=bar&baz=buz
. Переменная окружения не будет удалена из URL. Печать с $cgi->pre(...)
будет просто заключать в env var теги
(или один тег <pre />
, если значение приведено или приведено к пустой строке.
$cgi->param()
, с другой стороны, и при условии, что контекст списка без аргументов вернет список из URL-неэкранированный Имена параметров CGI, в данном случае foo
и bar
.
(Обратите внимание, что $cgi->pre(...)
не не HTML-экранирует свой аргумент, поэтому $ENV{QUERY_STRING}
может просто поставить под угрозу ваш cgi с помощью небольшого внедрения межсайтовых скриптов.)