Старый 27.08.2010, 03:47   #21
Dr.Z3r0
 
Аватар для Dr.Z3r0
 
Регистрация: 05.07.2010
Сообщений: 101
Репутация: 156
По умолчанию

2Pashkela, регистр глобалс тут ни на что не влияет.

Я знаю что это не даст ничего кроме раскрытия путей, но и падавлять ошибки - помоему признак дурного тона в кодинге. Неужели разработчики не учли этот момент...
__________________
На просьбы о помощи в sql-injection в ПМ не отвечаю. Для этих вопросов есть специальные темы.
Dr.Z3r0 вне форума   Ответить с цитированием
Старый 27.08.2010, 05:01   #22
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

Цитата:
Сообщение от Dr.Z3r0 Посмотреть сообщение
2Pashkela, регистр глобалс тут ни на что не влияет.
имел в виду например такую ситуацию:

PHP код:
<?php 
$name
=session_name(); 
if(isset(
$_REQUEST[$name]) && (!is_string($_REQUEST[$name]) || !preg_match('#[a-z0-9]{32}#i'$_REQUEST[$name]))){ 
    function 
ClearSessID(&$array$name){ 
        if(
array_key_exists($name$array))unset($array[$name]); 
    } 

    
ClearSessID($_REQUEST,     $name); 
    
ClearSessID($_GET,        $name); 
    
ClearSessID($_POST,     $name); 
    
ClearSessID($_COOKIE,     $name); 
    
ClearSessID($GLOBALS,     $name); 

session_start();
$_SESSION['name'] = $_GET[$name];
?>
Два запроса:

1) http://localhost/test.php?PHPSESSID[]=ololo
2) http://localhost/test.php?PHPSESSID=ololo

Warning: Illegal offset type in /var/www/test.php on line 15

а так не вижу ничего дурного в обычном подавлении ошибок

Последний раз редактировалось Pashkela; 27.08.2010 в 05:09..
Pashkela вне форума   Ответить с цитированием
Старый 27.08.2010, 19:12   #23
Dr.Z3r0
 
Аватар для Dr.Z3r0
 
Регистрация: 05.07.2010
Сообщений: 101
Репутация: 156
По умолчанию

Что за хрень ты привел? =)
Там не будет ошибки, даже в том случае что ты написал.
И регистр глобалс там ни на что действительно не влияет.

UPD: потестил на локалке на всякий случай, ошибок нет.
__________________
На просьбы о помощи в sql-injection в ПМ не отвечаю. Для этих вопросов есть специальные темы.
Dr.Z3r0 вне форума   Ответить с цитированием
Старый 29.08.2010, 17:31   #24
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

PHP Version 5.2.10, Ubuntu 9.10 - ошибка есть, и есть только при register_globals=ON, при условии, что session_name()=PHPSESSID

Если подробно расписать, как добиться вызова ошибки:

1. Делаем скрипт test.php - код выше
2. Удалить ВСЕ сессии из папки с сессиями
3. Делаем сразу два запроса подряд:

1) http://localhost/test.php?PHPSESSID[]=ololo
2) http://localhost/test.php?PHPSESSID=ololo

4. Наблюдаем ошибку:

Warning: Illegal offset type in /var/www/test.php on line 15

PS: причем интересная ошибка, просто посмотреть, как меняется содержание сессии после 1-го запроса и после второго +ошибка появляется только один раз - при повторном таком двойном подряд запросе к этому же скрипту при уже наличии сессии ошибки не будет. На винде работает тоже кстати

Последний раз редактировалось Pashkela; 29.08.2010 в 18:26..
Pashkela вне форума   Ответить с цитированием
Старый 29.08.2010, 18:43   #25
nobody
 
Аватар для nobody
 
Регистрация: 05.07.2010
Сообщений: 176
Репутация: 130
По умолчанию

к сессиям это не совсем относится, это относится к любом массиву, потому как нельзя использовать в качестве ключа объект или массив
PHP код:
<?php
$key 
"does not matter";
$value123;
$a[(array)$key] = $value//or key-object
?>
вот и раскрытие путей, конечно можно явно указывать типизацию, и оставить пример Dr.Z3rO
но опять повторюсь - для раскрытых путей вполне достаточно просто глушить ошибки
nobody вне форума   Ответить с цитированием
Старый 29.08.2010, 19:16   #26
Pashkela
 
Аватар для Pashkela
 
Регистрация: 05.07.2010
Сообщений: 1,243
По умолчанию

Цитата:
Сообщение от nobody Посмотреть сообщение
к сессиям это не совсем относится, это относится к любом массиву, потому как нельзя использовать в качестве ключа объект или массив
PHP код:
<?php
$key 
"does not matter";
$value123;
$a[(array)$key] = $value//or key-object
?>
вот и раскрытие путей, конечно можно явно указывать типизацию, и оставить пример Dr.Z3rO
но опять повторюсь - для раскрытых путей вполне достаточно просто глушить ошибки
пример не в кассу, нет никакой связи с сессиями. Почитайте, если вы не в курске, может тогда что-нибудь прояснится:

http://www.theblog.ca/session-register-globals
Pashkela вне форума   Ответить с цитированием
Старый 29.08.2010, 21:23   #27
nobody
 
Аватар для nobody
 
Регистрация: 05.07.2010
Сообщений: 176
Репутация: 130
По умолчанию

Правильно, переменная называется $name, и идентификатор сессии - тоже name
из-за Rg (замены сессией переменной) $_GET[$name] (где $name - ключ с типом array). Это и вызывает ворнинг.
Ты описал метод эксплуатации, а я - причину (то что ключ массива имеет запрещенный тип).
nobody вне форума   Ответить с цитированием
Старый 07.09.2011, 21:47   #28
}{оттабыч
Banned
 
Регистрация: 08.10.2010
Сообщений: 188
Репутация: 53
По умолчанию

FPD в веб-приложении с использованием Zend Framework

Приложения используют прогресивное программирование нынче, это ajax, то что дает ресурсу гибкость и т.д.

Ищем development, testing, staging, demo на хосте там верняк:
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

Отслеживаем через firebug, например, ajax запросы, напрямую обращаемся с браузера.

В действиях ViewRenderer не отключается.
Дейстивие срабатывает коректно, только если сдеть запрос XmlHttpRequest, на action это задаётся в хелпере AjaxContext, обычно в init() в контролере.

И посему если обратиться напрямую, то получим FPD, так не будет представления для указаного действия, если девелопер его ручками не отключил.
}{оттабыч вне форума   Ответить с цитированием
Старый 07.09.2011, 22:30   #29
+toxa+
 
Аватар для +toxa+
 
Регистрация: 20.07.2010
Сообщений: 4
Репутация: 3
По умолчанию

странно что такую фичу не упомянули)
PHP код:
<?
header
("Location: http://www.google.ru/search?q=$_GET[query]");
http://localhost/test.php?query=ololol%0ALocation:%20pew-pew

Код:
Warning: Header may not contain more than a single header, new line detected. in Z:\home\localhost\www\test.php on line 2
+toxa+ вне форума   Ответить с цитированием
Старый 06.02.2015, 17:49   #30
omen666
 
Регистрация: 06.09.2014
Сообщений: 64
Репутация: 9
По умолчанию

C php 5.4 для break или continue значение только > 0
Fatal error: 'break' operator accepts only positive numbers in /путь on line /номер_строки
omen666 вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot