Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Каким переменным окружения можно доверять? и каким не стоит. :) 
:(
    Опции темы
Верлиока
Дата 22.1.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.9.2005

Репутация: нет
Всего: 4



Где бы найти список переменных окружения с пометкой, какие из них генерирует апач, и какие броузер?

Чтобы знать, с какими из них можно безопасно работать, а какие нужно проверять на вшивость.
PM WWW   Вверх
Nab
Дата 22.1.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 8
Всего: 37



Броузер не генерирует никаких переменных окружения на стороне сервера, их все генерирует сервер....
Те что относятся к вызывающей стороне начинаются обычно на REMOTE_*, $ENV{'RENMOTE_ADDR'} к примеру...

А доверять вы им в принципе обязаны smile Ибо больше нечему smile


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Верлиока
Дата 22.1.2007, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.9.2005

Репутация: нет
Всего: 4



Цитата(Nab @ 22.1.2007,  20:14)
Броузер не генерирует никаких переменных окружения на стороне сервера, их все генерирует сервер...

HTTP_REFERER и HTTP_COOKIE, например, заполняет броузер при отсылке запроса.
поэтому на проверке реферера вообще нельзя ничего серьёзного завязывать.
да и в куки нельзя писать ничего архиважного по этой же причине - легко подделать.

а вот подделать REMOTE_ADDR технически невозможно (или я не смог найти инфы), поэтому этой переменной можно спокойно пользоваться.

также, к примеру, DOCUMENT_ROOT или UNIQUE_ID (при наличии mod_unique_id) создает сам сервер, и они тоже безопасны.


понимаете о чем я? :)

Это сообщение отредактировал(а) Верлиока - 22.1.2007, 20:24
PM WWW   Вверх
Nab
Дата 22.1.2007, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 582
Регистрация: 25.3.2006
Где: Kiev

Репутация: 8
Всего: 37



Не понимаю smile

Переменные окружения не заполняются броузером, еще раз повторю, их заполняет сервер, в том числе и на основании данных полученных от клиента. И не доверять им повторюсь нельзя, ибо нечему больше smile 

Вы меня понимаете?

Куки естсессно нужно проверять, иначе нафига они вообще? Referer, обычно просто игнорируется, хотя я не понимаю зачем Вам он вообще нужен...
Вообще в любых данных приходящих от клиента нельзя быть уверенным smile но это не отменяет того, что получить данные о клиенте просто больше негде... smile
Кстати при ориентировке по DOCUMENT_ROOT я когда-то напоролся, сервер не корректно выставлял эту переменную, и я попадал в чужей каталог со скриптами... так что тут говорить о доверии к хостеру тоже можно smile



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Верлиока
Дата 22.1.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.9.2005

Репутация: нет
Всего: 4



Цитата(Nab @ 22.1.2007,  20:46)
Переменные окружения не заполняются броузером, еще раз повторю, их заполняет сервер, в том числе и на основании данных полученных от клиента

да это одно и то же :))
чего к словам придираться?
просто с некоторыми переменными так: что броузер прислал, то и выведет сервер.
а это всё равно что броузер клиента их сам заполнит, нет? :)

хочу узнать какие переменные под контролем клиента.
PM WWW   Вверх
djkostya
Дата 24.1.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 71
Регистрация: 16.5.2006
Где: Москва

Репутация: 1
Всего: 2



    /* variable name starts with */
    "HTTP_",

    /* variable name is */
    "AUTH_TYPE=",
    "CONTENT_LENGTH=",
    "CONTENT_TYPE=",
    "DATE_GMT=",
    "DATE_LOCAL=",
    "DOCUMENT_NAME=",
    "DOCUMENT_PATH_INFO=",
    "DOCUMENT_ROOT=",
    "DOCUMENT_URI=",
    "FILEPATH_INFO=",
    "GATEWAY_INTERFACE=",
    "LAST_MODIFIED=",
    "PATH_INFO=",
    "PATH_TRANSLATED=",
    "QUERY_STRING=",
    "QUERY_STRING_UNESCAPED=",
    "REMOTE_ADDR=",
    "REMOTE_HOST=",
    "REMOTE_IDENT=",
    "REMOTE_PORT=",
    "REMOTE_USER=",
    "REDIRECT_QUERY_STRING=",
    "REDIRECT_STATUS=",
    "REDIRECT_URL=",
    "REQUEST_METHOD=",
    "REQUEST_URI=",
    "SCRIPT_FILENAME=",
    "SCRIPT_NAME=",
    "SCRIPT_URI=",
    "SCRIPT_URL=",
    "SERVER_ADMIN=",
    "SERVER_NAME=",
    "SERVER_ADDR=",
    "SERVER_PORT=",
    "SERVER_PROTOCOL=",
    "SERVER_SOFTWARE=",
    "UNIQUE_ID=",
    "USER_NAME=",
    "TZ=",


Ребят не в тему но Апач собираеться с следующими списком окружения
Тобиш по дефолту.....с Suexec
PM MAIL WWW ICQ   Вверх
ISQman
  Дата 20.2.2009, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 22.7.2008

Репутация: нет
Всего: нет



Доброго времени суток. Не хотел плодить тему про переменные окружения но столкнулся с такой проблемой:
Мне необходимо вызвать внешнюю комманду с содержанием айпишника , вот кусок кода:
Код

#!/usr/bin/perl -w                                                                                                                                            
                                                                                                                                                              
use strict;                                                                                                                                                   
                                                                                                                                                              
$ENV{PATH}='/bin:/sbin:/usr/bin:/usr/sbin';                                                                                                                   
                                                                                                                                                              
if ($ENV{HTTP_X_FORWARDED_FOR}){                                                                                                                              
    my $ip = $ENV{ HTTP_X_FORWARDED_FOR};                                                                                                                     
}else{                                                                                                                                                        
    my $ip = $ENV{REMOTE_ADDR};                                                                                                                               
}                                                                                                                                                             
                                                                                                                                                              
my @ver=`ipfw table 91 list | grep $ip`; 

но при вызове данной комманды получаю 500-ю ошибку :(, хотя при простом вызове `ipfw table 91 list | grep 192.168.0` всё отрабатывает нормально :(
прошу помощи ибо 3-и сутки в ступоре.... smile 




PM MAIL ICQ   Вверх
ginnie
Дата 20.2.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



ISQman, сделайте

Код

warn "ipfw table 91 list | grep $ip";


и посмотрите в логе, что не так.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
ISQman
  Дата 20.2.2009, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 22.7.2008

Репутация: нет
Всего: нет



пробовал многие способыи результат ошибка 500

вот кусок лога
Insecure dependency in `` while running setuid at /usr/local/www/apache22/data/no_pay/index.cgi line 12.

из консоли при использовании warn выдало:
Use of uninitialized value in concatenation (.) or string at ./index.cgi line 12.



Это сообщение отредактировал(а) ISQman - 20.2.2009, 11:54
PM MAIL ICQ   Вверх
ginnie
Дата 20.2.2009, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 4
Всего: 49



ISQman, проблема связана с perlsec, надо попробовать 

Код

my ($untainted_ip) = $ip =~ /(\d+\.\d+\.\d+\.\d+)/;

my @ver=`ipfw table 91 list | grep $untainted_ip`;


Это сообщение отредактировал(а) ginnie - 20.2.2009, 12:23


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
ISQman
Дата 20.2.2009, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 22.7.2008

Репутация: нет
Всего: нет



и снова ты меня спас)
огромное пасиба)

Это сообщение отредактировал(а) ISQman - 20.2.2009, 12:38
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.1071 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.