Как я могу сделать идентификаторы в URL моего приложения Rails 3 более безопасными / запутанными? - PullRequest
0 голосов
/ 26 марта 2011

Мое текущее приложение использует очень простые user_id и message_id в URL. Я хочу, чтобы идентификатор был запутан, чтобы кому-то было нелегко вручную изменить идентификатор и перейти к чужим сообщениям и т. Д.

Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 26 марта 2011

вопрос должен заключаться в том, «как подписать параметры моего URL, чтобы они не могли быть изменены».

Используйте секретную соль, о которой знает только внутренний код (сервер).Затем сделайте что-то вроде объединения всех параметров (в вашем случае только id) вместе с солью и создайте хеш SHA.Добавьте хеш к вашему URL.В вашем контроллере добавьте before_filter, чтобы проверить правильность хэша.

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

0 голосов
/ 26 марта 2011

UUID. Я новичок в рельсах, но я понимаю, что есть несколько вариантов, потому что мне нужна такая же безопасность, какую вы хотите. Первый - это гем UUIDtools для случайных идентификаторов вместо последовательных. Очевидно, Rails 3 поддерживает uuid как тип данных, но он не используется широко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...