Palych_tw
@Palych_tw
Типа веб-разработчик

Почему небезопасно показывать ID пользователя в URL, и чем его заменить?

Собственно суть вопроса такая. Есть, например, ссылка на профиль юзера site.com/user/123, где 123 - это id в БД. Почему так небезопасно делать, и какой идентификатор можно использовать вместо id-шника ?
  • Вопрос задан
  • 1615 просмотров
Решения вопроса 3
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
это облегчает атаки с использованием масс ассигмент, как вот товарисч недавно отписался, можно либо заменить на уникальный ник (и тогда еще и смотрится красиво), либо подумать о защите от атак заранее.
Ответ написан
Exploding
@Exploding
wtf?
Тю, а че это не безопасно? Нормально, как по мне. Главное обрабатывать GET правильно и все там вполне безопасно.
Заменить... Ну... Транслитерация фио и канкатонировать тот же id^2 например, чтоб уж секретность была такой секретной))
Ответ написан
@BorisKorobkov
Web developer
Не вижу никаких проблем, если засветить ID юзера.

1. Ну, можно их спарсить перебором - так ведь профили публичные, все равно их проиндексируют.
Если же профили непубличные, то и вообще не надо делать никаких URL для них, а просто по site.com/user показывать профиль текущего залогиненного юзера.

2. Если ID секретный, то в чем секретность? Даже при генерации 1 млн. ID рандомно не будет особой проблемы при брутфорсе.

3. Если вместо ID в URL используется другой идентификатор (например, уникальный ник), то он все рано представляет ровно такую же секретность, как и ID. То бишь почти никакой.
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
x67
@x67
Используйте хеш уникального имени+соли или UUID - их хватит надолго
Ответ написан
@kttotto
все, что .NET
Есть такое дело, что не рекомендуют показывать реальные id на клиенте. В этом случает заводят еще одно поле, чаще всего guid, и если на клиенте нужно показать какой то идентификатор, то показывают его.
Ответ написан
@mr_jumper
Пример. Vk.com. Они светят ид пользователя. И на заре существования можно было взяв это ид увидеть фотку любого пользователя.

Тут важно использовать эти ид вдумчиво.
Ответ написан
@Psq
Информационная безопасность. Пентест.
Если используете в GET запросах сей параметр - приводите его к int при обработке, для избежания ряда SQL инъекций.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы