![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| FlyBird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.3.2007 Репутация: нет Всего: нет |
Здравствуйте!
Скрипты проходят отладку на localhost, все отлажено и все работает, система XP. После отладки скрипты выкладываются на сервер хостера. Вот там проблема. На папку хостера /cgi-bin/ установлены права 755, на все скрипты так же 755. При попытке запуска скрипта сервер хостера выдает ошибку [XXXX] [error] fopen: Permission denied, referer: http://xx.ru/ [XXXX] [error] Premature end of script headers: price.pl, referer: http://xx.ru/ [XXXX] [error] unable to include "/cgi-bin/price.pl?mode=price" in parsed file /var/www/html/xx.ru/site/prices/index.shtml, referer: http://xx.ru/ (реальный адрес сервера подменен, чтобы не казалось рекламой или спамом) После долгих разбирательств со скриптами, мне все-таки удалось их запустить указав в строке #!/usr/bin/perl ключ -t, т.е. в начале скрипта пишем: #!/usr/bin/perl -t Скрипт стал выполняться как и задумано, но в логах по Apache теперь регистрируется другая ошибка следующего содержания, причем для разных скриптов она меняется, например для обычного счетчика регистрируется такая: [XXXX] [error] [client 81.19.66.38] Insecure dependency in open while running with -t switch at count01.pl line 41. для скрипта работающего с SQL базой данных такая(все последующие строчки регистрируются сразу за одно нажатие мышкой): [XXXX] [error] [client 213.180.216.11] [Sat Apr 14 12:21:57 2007] price.pl: Insecure dependency in require while running with -t switch at price.pl line 20. [XXXX] [error] [client 213.180.216.11] [Sat Apr 14 12:21:57 2007] price.pl: Insecure dependency in require while running with -t switch at (eval 8) line 3. [XXXX] [error] [client 213.180.216.11] [Sat Apr 14 12:21:58 2007] price.pl: Insecure dependency in require while running with -t switch at /usr/lib/perl5/5.8.5/AutoLoader.pm line 92 during global destruction. Можно что либо предпринять, чтобы ошибок при выполнении скриптов не было? Спасибо |
|||
|
||||
| JAPH |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 1 Всего: 23 |
Ключ -T помечает все данные, пришедшие извне - %ENV, <STDIN> - как неблагонадёжные. Поэтому запрещается выполнять с ними некоторые операции (вроде open, exec). Для их очистки (снятия статуса неблагонадёжных) нужно проверять их регулярными выражениями. Подробнее - perldoc perlsec. Был бы скрипт - может, рассуждения были поконкретнее. -------------------- Что непонятно - спрашиваем |
|||
|
||||
| FlyBird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.3.2007 Репутация: нет Всего: нет |
Спасибо, за оперативный ответ. Но вопрос стоял несколько иначе. В данной задаче не стоит проверять данные на загрязнение, вопрос в том почему без ключа -t не работет, а с ключом все-таки скрипт запускается. Возможно, я несколько неправильно задал вопрос (не в ту ветку), ведь здесь стыкуются две большие программы это Perl и Apache, причем Apache хостера, где не стоит XP, а присутсвует специализированная система. На localhost лог. Apache - чистый, без каких-либо ошибок, а вот лог Apache на хостере имеет описанные мной ошибки в различных вариантах (как должно быть и как есть на самом деле) посте первом.
Собственно вопрос и заключался в том, где что неправильно настроено(либо хостером или нами) и можно ли это поправить? |
|||
|
||||
| JAPH |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 1 Всего: 23 |
Скорее хостером, чем нами. И не неправильно - taint mode специально для безопасности создавался.
Поправить настройки хостер вряд ли даст, а вот обойти запросто:
-------------------- Что непонятно - спрашиваем |
|||
|
||||
| FlyBird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.3.2007 Репутация: нет Всего: нет |
Судя по строке, которую Вы дали поможет избавиться от ошибки в логах от Apache, вопрос в том куда ее вставить?
|
|||
|
||||
| amg |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1145 Регистрация: 3.8.2006 Где: Новосибирск Репутация: 1 Всего: 50 |
Возможно, глупость скажу, но может дело в неправильных концах строк? Если загрузить скрипт с винды на линуховый сервер, например, по FTP в бинарной моде, то первая строка будет не "#!/usr/bin/perl", а "#!/usr/bin/perl\r", а такого интерпретера, естественно, нет. При редактировании 1-й строки символ "\r" мог быть затерт, скрипт стал исполняться, но появилась ругань на несекьюрность (из-за -t).
На всякий случай, избавиться от "\r" можно командой (в командной строке linux)
Это сообщение отредактировал(а) amg - 18.4.2007, 10:56 |
|||
|
||||
| FlyBird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.3.2007 Репутация: нет Всего: нет |
(amg) Этот шаг отработали, и это далеко не глупость, важна каждая мелочь. Смотрим через FAR программу скачанные скрпиты, в программе просмотра все отражается верно! Если капнуть немного вглубь, то какие права должны быть установлены и на папку /cgi-bin/ и на сам скрпит? Мы установили рекомендуемые авторами многих книг - это 755.
|
|||
|
||||
| JAPH |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 1 Всего: 23 |
Ну, допустим, получаете вы данные из ненадёжного источника:
Теперь с ней можно делать всё, что угодно, perl считает, что всё безопасно, нет unsecure dependency. Хотя по идее, проверка в регвыре должна быть намного более осмысленна. -------------------- Что непонятно - спрашиваем |
||||
|
|||||
| FlyBird |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.3.2007 Репутация: нет Всего: нет |
Всем спасибо за обсуждение и помощь!
|
|||
|
||||
![]()
|
| Правила форума "Perl: CGI программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: разработка для Web | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |