Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сессия самое безопасное решение?
 
 автор: tvv123456   (15.10.2009 в 14:46)   письмо автору
 
 

Я напишу свое понимание по сессиям а вы поправьте, если я где-то ошибаюсь.

Переменная сессии передается сервером от страницы к странице и пользователь не имеет возможности увидеть эту переменную(допустим $_session['name']). Следовательно при помощи сессии можно безопасно(играет ли здесь роль ssl?) передавать номера ответов на вопросы при игре на деньги.

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

p.s. Сначала вообще хотел для этого использовать куки, но во время спохватился :))))))

  Ответить  
 
 автор: neadekvat   (15.10.2009 в 16:35)   письмо автору
 
   для: tvv123456   (15.10.2009 в 14:46)
 

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

  Ответить  
 
 автор: tvv123456   (15.10.2009 в 20:14)   письмо автору
 
   для: neadekvat   (15.10.2009 в 16:35)
 

Вопрос шел не об этом чуток, а о том можно ли из сессии стащить правильный ответ.
А в сессию я обычно заталкиваю логин и пароль в md5 и на "Секретных" страничках делаю запрос к БД типа "select * ...........WHERE user='$user' AND password='$password'" Переменные приходят из сессий(переде этим обрабатываються конечно же) Но вопрос не в этом.
Можно ли из сессии утащить правильный ответ, если он там записан в явной форме?

PS. Спасибо за идею с айпишником сам что-то не додумался, как я понял айпишник присваеваем в момент авторизации(а то у большинства динамический айп)?

  Ответить  
 
 автор: neadekvat   (15.10.2009 в 21:08)   письмо автору
 
   для: tvv123456   (15.10.2009 в 20:14)
 

Ну, я могу стащить кукисы у пользователя и выдать его за себя, тогда я буду авторизован у вас как тот пользователь => увижу все то, что видит пользователь.

Судя по тому, что надо использовать какие-то доп.параметры в сессии, безопасность у вас не на особо высоком уровне.

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

  Ответить  
 
 автор: Trianon   (15.10.2009 в 21:11)   письмо автору
 
   для: tvv123456   (15.10.2009 в 20:14)
 

>А в сессию я обычно заталкиваю логин и пароль в md5 и на "Секретных" страничках делаю запрос к БД типа "select * ...........WHERE user='$user' AND password='$password'" Переменные приходят из сессий(переде этим обрабатываються конечно же)

И зачем, спрашивается в задачнике?

http://softtime.ru/forum/read.php?id_forum=1&id_theme=67215

  Ответить  
 
 автор: tvv123456   (15.10.2009 в 22:10)   письмо автору
 
   для: Trianon   (15.10.2009 в 21:11)
 

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

  Ответить  
 
 автор: neadekvat   (15.10.2009 в 22:13)   письмо автору
 
   для: tvv123456   (15.10.2009 в 22:10)
 

Я уже несколько раз ответил..
Безопасность зависит от вас лично, как вы сделаете обработку. Сам файл сессии с сервера стащить практически невозможно, если вас интересует это.

  Ответить  
 
 автор: tvv123456   (15.10.2009 в 22:16)   письмо автору
 
   для: neadekvat   (15.10.2009 в 22:13)
 

Извиняюсь за тугодумство, не хотел никого раздражать :)))))))))

  Ответить  
 
 автор: Trianon   (15.10.2009 в 22:18)   письмо автору
 
   для: neadekvat   (15.10.2009 в 22:13)
 

Это тоже бабушка надвое...
Если temp's у виртуальных хостингов общие - то...

  Ответить  
 
 автор: Valick   (17.10.2009 в 10:57)   письмо автору
 
   для: neadekvat   (15.10.2009 в 22:13)
 

Безопасность зависит от вас лично, как вы сделаете обработку. Сам файл сессии с сервера стащить практически невозможно, если вас интересует это.
переменные сессии часто храняться в папке temp к которой открыт доступ для скриптов, и если злоумышленник хостится по соседству с вами, то "плакали ваши денюшки"
Хранить логин и пароль в сесии, а затем сверять его с базой.. вообще не имеет никакого смысла, так как результат запроса всегда будет положительным (единственный вариант это когда пользователя удаляют из базы, но в этом случае при удалении грамотно будет просто прервать сессию и повтороно пользователь уже не авторизуется) и кроме как лишнего ненужного запроса к БД никакой смысловой нагрузки этот запрос не несёт.

  Ответить  
 
 автор: neadekvat   (17.10.2009 в 13:20)   письмо автору
 
   для: Valick   (17.10.2009 в 10:57)
 

Про папку temp выше уже сказали
А про авторизацию - это надо было автору темы говорить. Я же это использую только для кнопки "запомнить меня"

  Ответить  
 
 автор: Trianon   (15.10.2009 в 22:16)   письмо автору
 
   для: tvv123456   (15.10.2009 в 22:10)
 

>Ну опять же про авторизацию я тут ничего не спрашивал, хотя уже стало интересно чем плох мой способ?

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

> []Мой же вопрос: вот пользователь зарегился, вошел начал играть, ему задаються вопросы, ответы на эти вопросы пишуться в сессии он их может как-нить узреть(ответы в смысле)

только через дыры в Ваших скриптах.

>[]Trianon[/b], ну с айпишником я сделаю так же как в конце той темы что вы мне дали,

я не помню, что там в конце темы - в ответе в все равно оставаться Вам.

>но вопрос(истинный вопрос) остался не отвеченным.

На счет того, видна ли сессия на клиенте?
Напрямую не видна. А дальше - как кривая вывезет.

  Ответить  
 
 автор: tvv123456   (15.10.2009 в 22:20)   письмо автору
 
   для: Trianon   (15.10.2009 в 22:16)
 

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

  Ответить  
 
 автор: cheops   (16.10.2009 в 13:39)   письмо автору
 
   для: tvv123456   (15.10.2009 в 22:10)
 

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

  Ответить  
 
 автор: ValeV   (17.10.2009 в 11:10)   письмо автору
 
   для: tvv123456   (15.10.2009 в 14:46)
 

Сессии являются своебразным аналогом куков.
Они не предназначены для передачи ответов пользователя на сервер.
Сессии уникальный индентификатор, создаются и сохраняются на протяжении СЕАНСА ПОЛЬЗОВАТЕЛЯ в виде файла на сервере.
SSL - шифрованная передача данных на сервер, разработан для безопасного взаимодействия между Браузером и Вебсервером.
Если SSL - способ передачи шифрованных данных на сервер, то
Сессии - это файл который создается на сервере, создав переменную, вы можете отслеживать её как глобальную

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования