2013-04-12 3 views
0

У меня есть сайт с двумя областями. Один для членов Gold, а другой для членов Silver. Я создаю две переменные сеанса, когда пользователь входит в систему; для каждой области требуется доступ к двум переменным сеанса.безопасность сеанса для разных областей

Золото: сеанс ID_пользователь и сеансы золото

Серебро: сеанс идентификатор пользователь и сеанс серебро

это обеспечено ли? Что делать, если хакер крадет или меняет сеанс-серебро на сеанс-золото? Тогда они могли получить доступ к разным районам, не так ли?

+1

Данные сеанса хранятся на сервере. Пользователь не может просто изменять данные сеанса волей-неволей. См. Http://stackoverflow.com/questions/2261716/can-php-sessions-be-manually-edited –

+1

Это хороший текст http://stackoverflow.com/questions/5121766/can-a-user-alter -the-value-of-session-in-php –

ответ

3

Кто-то не может просто изменить PHP созданных сеансов, как банки печенье. подумайте об этом, куки передаются на их машины, сеансы хранятся на сервере и теряются при отключении. Вы должны быть уверены, что для того, чтобы дезинфицировать все входные данные, или можно запускать сеансы, можно управлять

+0

что, если я тоже помню (cookie)? –

+0

@chienpinwang куки могут быть изменены. вы передаете их своему пользователю, вам просто нужно иметь балансы и балансы вместе с ними – Nick

0

Безопасность от хакеров - это гораздо БОЛЕЕ БОЛЬШОЙ области, чтобы покрыть, и это может быть очень сложно. Вы должны ВСЕГДА предполагать, что хакер может сломать ваш код и получить доступ.

Таким образом, я бы использовал базу данных, а не сеансы, чтобы определить пользовательские привилегии, и я бы не использовал простые значения сеанса, кроме зашифрованных. Возможно, вы можете сделать что-то вроде этого:

$_SESSION['user_level'] = sha1($userId . "session-silver"); 

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

ОТКАЗ: это предложение не предназначено быть бомбоубежищем, но, как маленькое, легкое улучшение текущего кода, не будучи слишком сложными для реализации быстро

+0

, если мы используем sha1 на нашем сеансе, как мы будем запрашивать данные? Обычно я использую идентификатор сеанса в качестве ключа для запроса пользовательских данных. –

+0

использует хэш sha1 для запроса пользовательских данных, сравнивающих его с sha1 ключа. так просто. –

Смежные вопросы