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

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

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

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


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

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

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

Похожие вопросы