session_start() нуждается в проверке.

WP

^_^
session_start() нуждается в проверке.

Если передать в качестве сессионной куки значение например "!", то появится нечто вроде Warning: session_start() [function.session-start]: The session id contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,'. ./core/includes/inc-session.php:20
Я думаю что эта ситуация не должна вызывать Warning, а приравниваться к несуществующему ID. Т.к. это в любом случае нуждается в проверке.
Кто как решил этот вопрос?

-~{}~ 14.12.06 05:11:

Я сделал вот что:
PHP:
if (preg_match('~[^a-z\d]~i',gpcvar_str($_COOKIE[ini_get('session.name')]))) {unset($_COOKIE[ini_get('session.name')]);}
session_start();
-~{}~ 14.12.06 05:46:

З.Ы. про @ я не говорю :)
 

jonjonson

Охренеть
WP, вы уверены, что php ругается на имя куки? Что-то мне подсказывает, что он ругается на значение сессионного идентификатора.
 

WP

^_^
*уй! Санитары, уносите его, вместе с постами этой темы начиная со второго, пжалста.
 

jonjonson

Охренеть
Особенно понравилось ini_get('session.name') вместо session_name()
:)

-~{}~ 14.12.06 16:36:

А вообще вот пример
http://www.open-video.org/index.php?PHPSESSID=9...
Поиграйся с точками в URL
 

WP

^_^
Фанат
Потому что эта ситуация легко воспроизводится, и злоумышленник может увидеть ее, и это помоему не очень хорошо. Там ведь путь светится локальный.
 

WP

^_^
Передаст PHPSESSID со значением содержащим [^a-zA-Z\d], и увидит. Например http://www.open-video.org/index.php?PHPSESSID=__

-~{}~ 14.12.06 12:51:

StUV
Я предпочитаю выводить ошибки в броузер. А также считаю что нельзя варнинг давать какой бы ни был запрос. Если нет внутренней ошибки скрипта требующей отладки.
 

Фанат

oncle terrible
Команда форума
WP
Мне неудобно посылать тебя в фак по отладке, но не мог бы ты прочитать его ещё разик. Там сказано то, что я бы хотел тебе сказать сейчас.
 

WP

^_^
Фанат
А разве там затрагивается вопрос вывода ошибок?
Помоему, в лог конечно можно, но лишь для отлова невыявленных ошибок, которые не удалось обнаружить при поверхностном тесте.
Но тут дело не в этом совсем, даже если выводить их лишь в лог - в этой ситуации не нужен варнинг.
 

Фанат

oncle terrible
Команда форума
Там написано, что очень многие не понимают, что такое сообщения об ошибках. они думают, что сообщения об ошибках - это враги программиста, и их должно быть как можно меньше.
но на самом деле, они - друзья программиста. и их должно быть как можно больше.
Они сигнализируют о том, что что-то происходит не так. и заставляют разбираться с причинами.

А вопрос вывода ошибок там затрагивается тоже
 

WP

^_^
А, понимаю о чем ты. Я придерживаюсь именно такого мнения, и пишу всегда с E_ALL. Другое дело что ошибки сигнализируют о некорректной работе самого скрипта, которые требуют исправления. Самого механизма который принимает данные, обрабатывает и отдает ответ. И скрипт должен быть готов к любому запросу на входе. В случае когда передается хреновый идентификатор - правильное (логичное) решение - создать новую сессию, а не орать на всю Ивановскую. А если программист каким-то немыслимым образом перезаписал куку из скрипта на левое значение да еще и с такими символа - пусть выпьет йаду. Этот варнинг поможет только такому человеку.
 

berkut

Новичок
по-моему логичное поведение. лучше-бы отменили обращение к символу в строке так-же как и к эл-ту массива [].
 

WP

^_^
> по-моему логичное поведение.
Т.е. ты считаешь нормальным возможность вызвать варнинг?
> лучше-бы отменили обращение к символу в строке так-же как и к эл-ту массива [].
Какая связь?
 
Сверху