форум вебмастероff на AlfaSpace.NET

Ubuntu и Linux |реактивный бесплатный хостинг | Киноклуб. ВСЁ БЕСПЛАТНО!
база знаний хостинга | правила форума

  Начало ° Ответить ° Статистика ° Опрос ° Регистрация ° Поиск ° FAQ °
Форум вебмастеров на AlfaSpace.NET / The Matrix Has You / Как взять переменную из ссылки?
Автор Сообщение
acsid
Alfa Guru

2388
# Дата: 3 Дек 2005 08:22 ° Поправил: acsid


челове заходи по ссылке
index.php?nick=Ник_юзера

Как взят переменную из ссылки, значерние которой будет "Ник_юзера"?


$_GET['nick'] = $login; невыходит

----------------дошло раньше чем ктолибо ответил=))---------------------

$nick это и будет переменная+)))))))))))))))

0_bot
Участник

95
# Дата: 3 Дек 2005 15:56


>$_GET['nick'] = $login; невыходит
попробуй наоборот
$login = $_GET['nick'];

Nightfly
Участник

256
# Дата: 4 Дек 2005 10:46


$nick это и будет переменная+)))))))))))))))
это только при врубленном register globals - что не есть гут и вобще так делать не рекомендуеться.

acsid
Alfa Guru

2388
# Дата: 4 Дек 2005 15:46


Nightfly
I have a special file,that include into all php files to fix register globals_off
it consists of:
//------ Define variables for Register Globals=OFF-------

$HTTP_GET_VARS[]=1;
$HTTP_POST_VARS[]=1;
$HTTP_SESSION_VARS[]=1;
foreach($HTTP_GET_VARS as $name=>$value) {
$$name=$value;
}
foreach ($HTTP_POST_VARS as $name=>$value) {
$$name=$value;
}
foreach ($HTTP_SESSION_VARS as $name=>$value) {
$$name=$value;
}

DM53
Участник

232
# Дата: 4 Дек 2005 16:32


Данным кодом ты лишь разрешаешь запуск скриптам, которые расчитаны на register_globals on. Но безопасность то от этого становится соответствующей!

acsid
Alfa Guru

2388
# Дата: 4 Дек 2005 16:43 ° Поправил: acsid


DM53
хм а если делать так?а почему безопасность становиться хуже,в чем это проявляется?
if(!$PHP_SELF){
if($HTTP_POST_VARS) {extract($HTTP_POST_VARS, EXTR_PREFIX_SAME, "post_");}
if($HTTP_GET_VARS) {extract($HTTP_GET_VARS, EXTR_PREFIX_SAME, "get_");}
if($HTTP_COOKIE_VARS) {extract($HTTP_COOKIE_VARS, EXTR_PREFIX_SAME, "cookie_");}
if($HTTP_ENV_VARS) {extract($HTTP_ENV_VARS, EXTR_PREFIX_SAME, "env_");}
}
if($PHP_SELF == ""){ $PHP_SELF = $HTTP_SERVER_VARS[PHP_SELF]; }

DM53
Участник

232
# Дата: 6 Дек 2005 07:34


Теоретически кусок
if($HTTP_POST_VARS) {extract($HTTP_POST_VARS, EXTR_PREFIX_SAME, "post_");}
if($HTTP_GET_VARS) {extract($HTTP_GET_VARS, EXTR_PREFIX_SAME, "get_");}
if($HTTP_COOKIE_VARS) {extract($HTTP_COOKIE_VARS, EXTR_PREFIX_SAME, "cookie_");}
if($HTTP_ENV_VARS) {extract($HTTP_ENV_VARS, EXTR_PREFIX_SAME, "env_");}

прокатит. Но на практике видим то, что вместо избавления от надобности указывать массив переменных получаем надобность писать префикс. Т.е. нестандартный гемморойный путь решения проблемы, который на деле не только ничего не решает, но ещё и проблемы создает. Так что, учись, пиши сразу под register_globals off
ЗЫ: если тебя припрет все таки сделать посвоему, то замени хотя бы устаревшие имена массивов.
ЗЗЫ: чем плохо - долго описывать. Вкратце: тебя довольно легко может хакнуть даже очень начинающий хацкер, если он получит доступ к чтению кода скрипта.

acsid
Alfa Guru

2388
# Дата: 6 Дек 2005 16:03 ° Поправил: acsid


этот код не мой,его тут на форуме ктото кинул=)
DM53
а то что я использую уникальные сессии ?разве это непоможет?

DM53
Участник

232
# Дата: 7 Дек 2005 06:01


Нет. Опасность в случае с register_globals on возникает в подстановке в HTTP-запрос заведомо неверных данных.
И ещё (btw, ни один из вышеприведенных тобой кодов от этого не защитит). К примеру, у тебя в скрипте строчка if($admin_mode == 1) {...}, а $admin_mode по какой то причине не определен (например произошло случайное удаление, т.е. ты об этом и не подозреваешь), то хацкер, получив доступ к коду скрипта, может самым элеметарным способом добавить к адресу скрипта "?admin_mode=1" и получить, в нашем случае, права админа.
Ну а что насчет "проблемы" с суперглобальными массивами, то тут отключение register_globals помешает подменить переменные в массиве, которые основанны на сведениях, передаваемых user agent'ом ($_GET, $_POST, $_COOKIE, $_FILE, немного $_SERVER), только глупым хацкерам, которых сейчас довольно много развелось.

acsid
Alfa Guru

2388
# Дата: 7 Дек 2005 10:22 ° Поправил: acsid


DM53
хм ну хоршо .. а у тебя не будет какой нибудь ссылки или ещё чего нибудь где можно прочитать как писать под глобалс оф

DM53
Участник

232
# Дата: 7 Дек 2005 12:22 ° Поправил: DM53


Легко, и никакой литературы не надо. Вместо $имя_переменной пишешь $_ИМЯ_МАССИВА['имя_переменной']. Рекомендую скачать мануал по пхп с php.net.ua и прочитать раздел "переменные -> предопределенные переменные". На той же странице есть ссылка на статью про программинг под register_globals off

Ваш ответ

Quote  Bold Style  Italic Style  Underlined Style  URL Link  Email Link  Script AutoTab  Preformatted Text  Отменить *Что это?
... Запретить смайлы


Перед отправкой "нелатинского" текста проверьте кодировку броузера!
 » Логин  » Пароль 
 
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:30025, gzipped size:9323

Mp3 Download || Webs Studio™ || Song's Lyrics
eXTReMe Tracker Rambler's Top100 Рейтинг@Mail.ru Форум ТвойWeb [Valid RSS]