HTTP_SERVER_VARS и безопасность

  • Автор темы AlexDreamer
  • Дата начала

AlexDreamer

Guest
HTTP_SERVER_VARS и безопасность

В доке по PHP приведен пример перенаправления на другую страницу с использованием HTTP_SERVER_VARS
что-то типа:
PHP:
Header ("Location: [url]http://[/url]".$HTTP_SERVER_VARS["HTTP_HOST"]."index.php");
насколько это безопасно касательно взлома сайта

Можно ли с точки зрения безопасности указывать относительный путь к файлу
PHP:
require("script/index.php");
или нужно указывать и адрес сайта - www.site.com/script/index.php

как насчет
PHP:
require($dir."/script/index.php");
?
 

AlexDreamer

Guest
Что-то не то написалось...

Header ("Location: HTTP://".$HTTP_SERVER_VARS["HTTP_HOST"]."index.php");
 

Vinny

Guest
Это перенеправление с помощью Header, а не HTTP_SERVER_VARS.

И к чему тут сравнение header и require? Это совершенно разные вещи. А причем тут безопасность?

Попытайся сформулировать вопрос как-нить по-другому...
 

Кром

Новичок
>Header ("Location: HTTP://".$HTTP_SERVER_VARS["HTTP_HOST"]."index.php");

Это называется у страха глаза велики :) Ничего взломать таким образом нельзя.

>require($dir."/script/index.php");

В этом случае взломать сайт можно при совпадении нескольких условий.
1. Возможность открытия удаленных файлов.
2. Неопределена переменная $dir
3. register_globals = On
4. Криво написаный скрипт по типу $dir = $_GET['dir']
 

Фанат

oncle terrible
Команда форума
Geras, а ты делай require только тех файлов, которые сам в своем скрипте написал. Себе-то ты в плане безопасности доверяешь?


Обращаю внимание невнимательных, что посты, идущие до сообщения Geras, были написаны год назад и отвечать на них не слишком целесообразно.
 

Geras

Guest
Автор оригинала: Фанат
Geras, а ты делай require только тех файлов, которые сам в своем скрипте написал. Себе-то ты в плане безопасности доверяешь?
Я уже даже не знаю чему доверять! Меня как-то по include ломанули. Поэтому хотел уточнить про require. Простите уж "чайника".
 

Фанат

oncle terrible
Команда форума
include и require - это одно и то же.
поэтому делать надо так, как я тебе сказал.
require (или include) только тех файлов, которые сам в своем скрипте написал.
Неужели непонятно?
тебя поломали потому, что ты, как дурак, передавал скрипту имя файла, который потом инклюдил. Тебе и подсунули вместо своего файла - чужой.
чтобы этого избежать, надо НИКОГДА не инклюдить то, что тебе пришло от клиента, а инклюдить только то, что ты сам написал.
Понял: Или нет?
или от испуга от поломки у тебя и мозги отказали?
 

Geras

Guest
короче загоню в массив и буду оттуда читать файлы..... я правильно понял?
 

Фанат

oncle terrible
Команда форума
Можно так.
Но лично я делаю инклюд только файлов с PHP кодом.
А этих файлов у меня не так много, чтобы их загонять в массив.
а файлы с данными я читаю скриптом, обрабатываю и вывожу на экран, безо всяких инклюдов.
И вот это - правильная структура веб-приложения.
 
Сверху