|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Alexey Gradovtsev 2:5020/400 18 Aug 2004 11:45:44 To : Serge Chervjakov Subject : Re: Hа: модуль CGI -------------------------------------------------------------------------------- Wed Aug 18 2004 01:01, Serge Chervjakov wrote to Artem Chuprina: AC>> А мне не кажется, у меня есть аргументы в пользу того, что большая AC>> засада - это не иметь на уровне программистского интерфейса возможности AC>> отличить параметр, переданный через URL, от параметра, переданного через AC>> поле формы. Объединить их при желании, согласись, проще... SC> А куда ж возможность пропадаетс?:) Это, если вдруг надо, можно ж свободно SC> проверить... По крайней мере у меня.. Т.е. да - объединение идет, но при SC> этом CGI остается подключенным, а сколь я знаю param() можно свободно и SC> повторно вызвать:). Я не знаю, как там у тебя, но везде уже достаточно подробно разжевано, что всегда лучше использовать модули вместо самописных поделок. Проверенные модули, ставшие стандартом. В которых не только реализованы все необходимые возможности (upload файлов) и учтены все известные аспекты безопасности, но также корректно обрабатываются все нюансы, разночтения и наследия старины (например, ; вместо & в строке запроса). SC> А все таки, зачем может быть нужно иметь возможность их различать? Хотя бы из тех же соображений безопасности. Если программист передает данные методом POST, то он и должен ожидать их из STDIN и только оттуда, а не из строки запроса. И наоборот. Иначе некоторые параметры, скажем, можно будет перекрыть вручную. Это только простенький пример, вообще же программы интерфейса с юзером должны быть максимально закрыты. Делать ровно что предназначено и не больше. Одним словом, дисциплина и еще раз дисциплина. Чтобы не искать потом судорожно дыры. Более того, Артем недоговорил. Hадо различать не только параметры, переданные через форму / через URI, а вообще параметры, переданные методом GET, POST (вот здесь отделять параметры формы от параметров URI), через куки, через переменные окружения... В этом плане очень удобен PHP, где это разделение реализоано на уровне языка: пришедшие данные хранятся в массивах $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES (отделение файлов от POST очень практично), $_SESSION (сессии в пхп тоже на уровне языка). Hо при надобности можно использовать (разумеется, осторожно) массивы $_REQUEST, $_GLOBALS, в которых данные объединены. Hу так на то PHP и заточен специально под веб, в отличие от эхотага. Digitally yours, Alexey. --- ifmail v.2.15dev5.3 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/166796a05c0b0.html, оценка из 5, голосов 10
|