On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

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

Автор: © Green Kakadu

Многие ищут скрипт по критерию возможностей: мол делает что мне надо, значит рулезный скрипт, и вовсе не задумываются о его реализации. На сайте http://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), то аплоад будет запрещен ... Читайте документацию, я и так отвлекся

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

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

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

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



Литература по Perl