Может ли человек подменить хэш?

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

Но вот возник следующий вопрос:
хэш создается так:
md5($user['username']);

На сервере проверка следующая:
if(data.hash == md5(data.username)){
	все ок
}else{
	все не ок
}


И соответственно, может ли пользователь через код изменить свое имя, а так же заменить хэш, сгенерировав его для "подставного" имени и отправить такой запрос на сервер? Пройдет ли он?
  • Вопрос задан
  • 336 просмотров
Пригласить эксперта
Ответы на вопрос 3
sim3x
@sim3x
md5 - не безопасен
Если хеш без соли, то нет никакой разницы, что ид, что имя, что хеш от известных переменных
Ответ написан
Комментировать
CityCat4
@CityCat4 Куратор тега Информационная безопасность
Внимание! Изменился адрес почты!
Во-первых, MD5 уже давно небезопасен. Во-вторых, у Вас что, сервер не проверяет, что пришло от пользователя?
Ответ написан
Комментировать
может ли пользователь через код изменить свое имя
Если есть такая возможность, то это крайне нехорошо.

было принято решение создавать хэш с уникальным номером пользователя
Хэш должен быть уникальным на время сессии пользователя. Поэтому надо добавить ещё соли. Хочешь крайний вариант, берёшь хэш от uid пользователя, добавляешь к нему соль и от всего этого ещё раз берёшь хэш.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы