Как защитить рейтинговую систему, написанную с использованием GAE (т.е. разрешить только один голос)? - PullRequest
0 голосов
/ 16 октября 2011

Когда мой сайт загружен, я получаю уникальный идентификатор пользователя. Пользователь не может изменить его - сайт загружается как iframe и идентификатор передается через GET:

if self.request.get('user_id'):
     user = User(key_name="id"+self.request.get('viewer_id'))
     user.put()

Может использоваться, чтобы разрешить только один голос за один идентификатор пользователя. Но как я могу безопасно передать его на другую страницу GAE? То есть Пользователь загрузил мою первую страницу, я сохранил его / ее идентификатор в хранилище данных (User модель). Пользователь будет голосовать на другой странице - я не могу передать его идентификатор как ?id=12345 на другую страницу. Что мне нужно сделать, чтобы узнать этот идентификатор на другой странице (чтобы пользователь не смог его изменить)?

1 Ответ

1 голос
/ 17 октября 2011

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

Что касается обеспечения того, чтобы пользователи не могли имитировать друг друга после этого, вам следует использовать библиотеку сессий для установки сеанса cookie и сохранять идентификатор пользователя в состоянии сеанса.

...