WebScript.Ru
C:\   главная  ::   о сайте  ::  каталог скриптов  ::  гнездо  ::  форум  ::   авторам  :: Новостройки ::   ХОСТИНГ  ::

|| разделы::
|| поиск по сайту::

|| реклама::
|| новости почтой::
Рассылки Subscribe.Ru ::



Новости сайта WebScript.Ru
Популярные статьи

Hot 5 Stories

|| рекомендуем::




Как правильно выбирать CGI скрипты


Прислал: Green Kakadu [ 25.01.2002 @ 14:52 ]
Раздел:: [ Статьи по Perl ]


Многие ищут скрипт по критерию возможностей: мол делает что мне надо, значит рулезный скрипт, и вовсе не задумываются о его реализации. На сайте //perl.com/ появилась статья: Finding CGI Scripts
О том где найти скрипты, и как выбрать наилучший. Вот некоторые рекомендации по выбору скрипта:

- используется ли в скрипте ключ -w и прагма strict?
Если да, то хорошо, значит как минимум, программер знал о существовании таковых и смог написать "корректный код", т.к. ключ -w и пагма strict заставляют интерпритатор Perl быть более настороженным к коду

- используется ли контроль меченных данных?
Ключ -T. Данный режим прежде всего полезен форумам, гостевым книгам, доскам объявлений, т.е. тем, где могут запостить всякую гадость, которую скрипт тупого (ладно, не тупого, а недальновидного) программера может применить для каких нибудь критичных функций (верх идиотизма - разборка таких подозрительных данных функцией eval ) В общем, повышаем надежность (даешь security!). Такие сомнительные данные (т.е. переданные скрипту посетителями через форму) всегда надо проверять.

- Использует ли скрипт CGI.pm
Это стандартный модуль Perl, который можно найти везде, где есть сам Перл, но некоторые умники предпочитают обрабатывать самостоятельно передаваемые данные... что чревато ошибками и защищенностью скрипта. Кто-то скажет, что мол зачем грузить целый модуль, для обработки затхленькой формочки? Ну так не грузите его весь! Загрузите те функции, что вы используете. О, еще иаленькие рекомендации. У этого модуля есть часть опций, которые вы можете включить, отключить (в целях безопасности), например:

  • $POST_MAX=-1; если выставите положительное число, то это будет кол-во бит, которые можно передать скрипту через форму. Когда-то, у модуля CGI.pm был глючок, связанный с тем, что некоторые редиски заливали кучу информации-мусора через формы, что приводило к печальным последствиям. Если хотите поставить ограничения на объем передаваемой, то в своем скрипте напишите, нечто вроде: $CGI::POST_MAX=1024*100; (т.е. 100кб)
  • $CGI::DISABLE_UPLOADS = 0; Если включить (т.е. поставить в True), то аплоад будет запрещен
  • ... Читайте документацию, я и так отвлекся
    Рекомендую скачать документацию этого модуля (на русском в PDF): //perldoc.narod.ru

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

    - Тех. поддержка... она есть вообще?
    Очень яркий показатель. Если есть, то имеет смысл ознакомиться с проблемами, которые одолевают пользователей скрипта. А если нет, то это вовсе не значит, что ни у кого нет проблем - скорее всего человек что-то сделал и забыл/забил.

    С учетом всего сказанного, хороший CGI скрипт должен как минимум выглядеть так:

    #!/usr/bin/perl -Tw
    use strict;
    use CGI qw/:cgi/;
    use vars '$global_var';

    Напоследок

    Все вышеизложенное я написал для проекта WebScript.Ru Nавигатор поэтому маленькое пожелание: свои комментариии пишите ТАМ! К тому же, там уже идет обсуждение этой заметки.


  •  :::::  Dima пишет 26.01.2002 @ 01:34 
    На счёт тех. саппорта в Manlix SW (www.manliks.ru/manlix) она есть, очень помогает!
    Для тех кто не знает, это прог.команда создающая халяву на PHP :)
     :::::  dimanaz пишет 05.04.2002 @ 19:13 
    > - Использует ли скрипт CGI.pm
    > Это стандартный модуль Perl, который можно найти везде, где есть сам Перл,
    > но некоторые умники предпочитают обрабатывать самостоятельно
    > передаваемые данные... что чревато ошибками и защищенностью скрипта.

    Имхо если руки кривые то ЦГИ.pm будет в тему. А если нет, то гораздо проще написать раз и на всегда одну функцию для декодирования форм. Пусть это будет достаточно громозко, но сбережет кучу процессорного времени, тк товарищи которые писали этот модуль явно перестарались с объектной ориентацией. 150 кб это помоему чересчур.

    Вообще меня забавляет восторг некоторых персон по поводу CGI.pm инекоторых других модулей. Забавно читать о том как нужно выводить заголовок
    Content-type: text/html\n\n с помощью встроенных методов этого модуля.

    Использование ЦГИ.pm в общем и целом ничего кроме гемора и тормозов не дает.
     :::::  Евгений пишет 11.04.2002 @ 16:57 
    Это точно - CGI.pm очень громоздка и в большинстве случаев не нужна. У меня, например, есть свой набор стандартных функций, которыми я и пользуюсь.
     :::::  alf пишет 24.02.2004 @ 02:18 
    Всем привет!!! Чуваки, помогите с формами разобраться, как сделать чтобы прин нажатии "отправить" вся информация переходила бы на новую страничку...
    или как сделать такую же форму как у вас (в которой я сейчас написал сообщение)

    Всем спасибо
    Имя:
    Email:
    URL

    Введите сумму двух чисел девять и одинн (девять+одинн=?)
    Запомнить мою информацию

    * Html запрещен* Ваш E-mail опубликован не будет.

    Copyright © 2000-2001 WebScript.Ru nas@webscript.ru
    Design © 2001 by Parallax Design Studio (aka Spectator.ru)
    Все торговые марки и авторские права на эту страницу принадлежат их соответствующим владельцам.
    Сгенерировано за: 0.0202820