форум вебмастеро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 |
|
Powered by miniBB forum software © 2001-2008
Powered by miniBB-gzipper. Original size:30025, gzipped size:9323 |