| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Каким переменным окружения можно доверять? |
| Автор: Верлиока 22.1.2007, 14:11 |
| Где бы найти список переменных окружения с пометкой, какие из них генерирует апач, и какие броузер? Чтобы знать, с какими из них можно безопасно работать, а какие нужно проверять на вшивость. |
| Автор: Nab 22.1.2007, 20:14 |
| Броузер не генерирует никаких переменных окружения на стороне сервера, их все генерирует сервер.... Те что относятся к вызывающей стороне начинаются обычно на REMOTE_*, $ENV{'RENMOTE_ADDR'} к примеру... А доверять вы им в принципе обязаны |
| Автор: Верлиока 22.1.2007, 20:23 | ||
HTTP_REFERER и HTTP_COOKIE, например, заполняет броузер при отсылке запроса. поэтому на проверке реферера вообще нельзя ничего серьёзного завязывать. да и в куки нельзя писать ничего архиважного по этой же причине - легко подделать. а вот подделать REMOTE_ADDR технически невозможно (или я не смог найти инфы), поэтому этой переменной можно спокойно пользоваться. также, к примеру, DOCUMENT_ROOT или UNIQUE_ID (при наличии mod_unique_id) создает сам сервер, и они тоже безопасны. понимаете о чем я? :) |
| Автор: Nab 22.1.2007, 20:46 |
| Не понимаю Переменные окружения не заполняются броузером, еще раз повторю, их заполняет сервер, в том числе и на основании данных полученных от клиента. И не доверять им повторюсь нельзя, ибо нечему больше Вы меня понимаете? Куки естсессно нужно проверять, иначе нафига они вообще? Referer, обычно просто игнорируется, хотя я не понимаю зачем Вам он вообще нужен... Вообще в любых данных приходящих от клиента нельзя быть уверенным Кстати при ориентировке по DOCUMENT_ROOT я когда-то напоролся, сервер не корректно выставлял эту переменную, и я попадал в чужей каталог со скриптами... так что тут говорить о доверии к хостеру тоже можно |
| Автор: Верлиока 22.1.2007, 21:47 | ||
да это одно и то же :)) чего к словам придираться? просто с некоторыми переменными так: что броузер прислал, то и выведет сервер. а это всё равно что броузер клиента их сам заполнит, нет? :) хочу узнать какие переменные под контролем клиента. |
| Автор: djkostya 24.1.2007, 18:08 |
| /* 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 |
| Автор: ISQman 20.2.2009, 11:22 | ||
| Доброго времени суток. Не хотел плодить тему про переменные окружения но столкнулся с такой проблемой: Мне необходимо вызвать внешнюю комманду с содержанием айпишника , вот кусок кода:
но при вызове данной комманды получаю 500-ю ошибку :(, хотя при простом вызове `ipfw table 91 list | grep 192.168.0` всё отрабатывает нормально :( прошу помощи ибо 3-и сутки в ступоре.... |
| Автор: ginnie 20.2.2009, 11:40 | ||
ISQman, сделайте
и посмотрите в логе, что не так. |
| Автор: ISQman 20.2.2009, 11:44 |
| пробовал многие способыи результат ошибка 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. |
| Автор: ginnie 20.2.2009, 12:21 | ||
ISQman, проблема связана с http://perldoc.perl.org/perlsec.html, надо попробовать
|
| Автор: ISQman 20.2.2009, 12:35 |
| и снова ты меня спас) огромное пасиба) |