Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Защита сессии пользователя (https://javascript.ru/forum/server/12712-zashhita-sessii-polzovatelya.html)

Slawaq 30.10.2010 01:14

Защита сессии пользователя
 
Короче я думал над тем что в моем приложении(я в одной теме я писал что там не надо будет защита), но я там ошибся)) так как там же идет запрос на сервер чтобы провести игру, в котором передается ид пользователя с которого будут сниматься его очки, так я от подумал как сделать чтобы только данный пользователь имел право провести запрос на игру с данными своего ида, ну короче чтобы только ты мог играть(а не взломщик)))
ну так вот, изучивши SQL запросы, и их использование в PHP(поверхностно, ну так чтобы мне хватало на мои творения))) я придумал вот так ограничивать возможность провидения игры, в БД есть столбик СЕССИОННЫЙ КЛЮЧ, в него записываться ключ, но не созданный рандомом, или самой программой, а пользователем, то есть при установке и первом запуске приложение пользователя извещает что нужно ввести свой СЕССИОННЫЙ ПАРОЛЬ который защищает доступ к его аккаунту и с помощью которого производятся денежные операции(его потом можно будет менять в настройках), после этого, в БД этот ключ вписываться, потом при первой попытке сыграть пользователя просит ввести его ключ чтобы подтвердить свои действия, он вводит и этот ключ сохраняется в куках на текущею сессию браузера, то бишь вводить снова ключ надо будет после перезапуска браузера или же когда ты вообще не с своего компа, ну самое главное заключается в том что операции проходят если только при отправке запроса вводимый СЕССИОННЫЙ КЛЮЧ совпадает с БДшним, и далее, взлом аккаунта может быть уже только такими способами, взлом моей БД(хотя там нечего ломать 6 столбцов 5 из них типа ИНТ, и последняя ТЕКСТ, но когда вписывается то, он не хешируется а шифрируется с помощью encode, ну я просто по другому наверно ещё не умею)))), 2 самый наверно вероятный, подбор пароля акка но наверно это не кому не нужно потому что ты ломаешь только один акк а не как первым способом ВСЕ)), и тем более мне же не страшно вся вина уже тут ложиться на аккаунт, 3 в этой я не уверен, но тут наверно если вирус или нежелательное ПО на компьютере клиента, оно может прочитать куки(НАВЕРНО)) я не много знаю и почти не разбираюсь но мне кажется это реально))), может ещё есть куча способов, но они кажутся по-одинокими и не страшными)

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

прочитавши ещё раз и просмотревши некоторую струю тему на форуме я подумал что всё-таки как-то стрёмно хранить ключ в куках, не находите?)) но выхода кажется как такового и нет)) И да, это, я знаю существует куча систем защит, и наверно ещё больше их обсуждений, но вы пока укажите де могут быть просчёты в моей?)

P.S.: Кто не в теме то ЗИС ИС ВКККК!)) :DD , чтоб потом не посылали ещё дальше)))

Slawaq 30.10.2010 18:05

я как понимаю, эта система всё-таки надёжна, или никто ещё ничего не написал потому что всем лень думать над тем что я написал, ясно, пойду это делать потом если что буду переделывать))

Kolyaj 01.11.2010 09:01

Это просто невозможно читать, только и всего.

micscr 01.11.2010 09:23

Цитата:

после этого, в БД этот ключ вписываться,
только вписывается не пароль в базу, а хеш пароля с солью.
Типа:
$hash = md5($password . 'Slawaq ');

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

walik 12.02.2011 18:22

По моему самая обычная регистрация)) и пользователь вводит самый обычный пароль))

А насчет как авторизовать пользователя:
Или я не правильно понял, но можно и не в куках, а просто в сессии ?
Есть такой массив $_SESSION)) к нему по моему никак нельзя получить доступ если я не ошибаюсь.

dmitriymar 13.02.2011 11:34

Цитата:

Сообщение от walik
Есть такой массив $_SESSION)) к нему по моему никак нельзя получить доступ если я не ошибаюсь.

ты о какой стороне?

walik 13.02.2011 18:46

Цитата:

Сообщение от dmitriymar (Сообщение 92256)
ты о какой стороне?

На стороне сервера

dmitriymar 15.02.2011 16:49

walik,
странно,а как тогда все к нему получают доступ?и работают с сессиями?

walik 15.02.2011 22:57

Цитата:

странно,а как тогда все к нему получают доступ?и работают с сессиями?
С помощью массива $_SESSION[]

Сессии и Кукисы

dmitriymar 15.02.2011 23:14

Цитата:

Сообщение от walik
Есть такой массив $_SESSION)) к нему по моему никак нельзя получить доступ если я не ошибаюсь.

.........
С помощью массива $_SESSION[]-ответ заставляет задуматься. на вопрос а как же к массиву $_SESSION все получают доступ и работают с ним,следует ответ-С помощью массива $_SESSION[]....
алогизм полный..или с ним работают с помощью негоже,но доступ к нему получить нельзя?))

walik 15.02.2011 23:27

dmitriymar,
У меня такое чувство что мы не понимаем друг друг, я вам об одном, а вы мне о другом :)

Не могу понять вопрос:
Цитата:

а как же к массиву $_SESSION все получают доступ и работают с ним
Речь идет о PHP ?

самым обычным образом:
session_start(); // открывает сессию

$_SESSION['name'] = 'walik'; 
// присваиваем переменной сессии 'name' значение 'walik'
// и в течение одного сеанса эта переменная будет доступна, если ее не удалять.


как то так, я ссылочку выше предоставил с описанием что такое сессия.

dmitriymar 15.02.2011 23:29

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

walik 15.02.2011 23:31

Цитата:

не можешь получить доступ- утверждаешь что на серверной нельзя
я имел в виду, посторонним лицам нет доступа, а к кукисам есть доступ.

Все так и мы не поняли друг друга :)

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

dmitriymar 15.02.2011 23:34

Цитата:

Сообщение от walik
я имел в виду, посторонним лицам нет доступа, а к кукисам есть доступ.

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

walik 15.02.2011 23:38

Я не хакер, и как взламывать не знаю, но читал раньше о том что есть возможность получить чужие кукисы

dmitriymar 15.02.2011 23:40

а что мешает получить и сесии?-они в одном месте хранятся с куками на компе

walik 15.02.2011 23:40

Цитата:

Сообщение от dmitriymar (Сообщение 92701)
и сессии хранятся там же где и куки .так что доступ для посторонних одинаков. разница всего во времени работоспособности по умолчанию.

Вот тут ошибочка, файлы сессии храняться на сервере а не у клиента.

По ссылочке которую я дал раньше можно прочитать:
Цитата:

Сессии и cookies предназначены для хранения сведений о пользователях при переходах между несколькими страницами. При использовании сессий данные сохраняются во временных файлах на сервере. Файлы с cookies хранятся на компьютере пользователя, и по запросу отсылаются броузером серверу.

dmitriymar 15.02.2011 23:46

Цитата:

Сообщение от walik
Вот тут ошибочка, файлы сессии храняться на сервере а не у клиента

не угадал-читай про сессии. там всё написано -что где и в каком виде храниться. сессия состоит из двух частей идентификатора(он на клиенте) и сессий на сервере. скопировав идентификатор с одного компа(условие чтобы за это время сессия на сервере на закрылась по тайм ауту)-получаешь полный доступ к сессии того компа-и сервер не различает(если нет доп проверок) что это уже другой использует сессию

walik 15.02.2011 23:51

Цитата:

получаешь полный доступ к сессии того компа-и сервер не различает(если нет доп проверок) что это уже другой использует сессию
На твоем компе будут те же сессии, но прочитать их же нельзя будет, как кукисы не так ли ?

dmitriymar 16.02.2011 00:00

Цитата:

Сообщение от walik
На твоем компе будут те же сессии, но прочитать их же нельзя будет, как кукисы не так ли ?

не совсем понял это .если это вопрос будут ли они одновременно работать с 2х и более компов на один аккаунт-то,если нет доп проверок-на измение операционки,айпи ,железа и т.д- будут
основное
различное с куками
-сессия состоит из 2х частей сессии и идентификатора её
-по времени жизни(по умолчанию разные)
общее с куками

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

x-yuri 16.02.2011 14:13

сессия - это в первую очередь данные, которые (обычно) с помощью кук привязаны к пользователю. И эти данные хранятся на сервере. А куки хранятся на клиенте. Javascript-код, выполняющийся в контексте некоторого домена, имеет доступ к кукам с этого домена, но не имеет доступа к сессиям. Сессионные переменные он в лучшем случае может наковырять, посылая запросы на сервер. И то все переменные обычно в таком случае не получить


Часовой пояс GMT +3, время: 04:13.