Я занимаюсь разработкой веб-приложения, и мне интересно, не представляет ли клиенту UserId
s потенциальную уязвимость безопасности.(Под UserId
я ссылаюсь на Id
пользовательского объекта Identity, созданного Identity Framework и используемого в качестве PK таблицы пользователей.)
Чтобы дать некоторый контекст или пример: в моем приложенииМне нужно различать контент, который публикуется зарегистрированным пользователем, и контент, который был опубликован другими.При наивном подходе я бы просто сравнил UserId
контента с UserId
текущего аутентифицированного пользователя.Но это будет означать, что клиент видит идентификаторы всех вовлеченных пользователей.
Мои интуитивные ощущения говорят мне, что это не очень хорошая идея, но я не могу точно определить, почему.Итак, мне интересно, есть ли рекомендации по этому вопросу.Может быть, это просто общее правило, чтобы уменьшить поверхность знания, которая подвергается минимуму.
Если это так, как мне поступить?Поможет ли хеширование UserId
решить проблему или есть лучшие подходы?
EDIT
Приведенный мною пример не самый лучший, потому что эта проблема можетлегко решается на бэкэнде, сравнивая там идентификаторы пользователей и затем отправляя содержимое клиенту, уже помеченному как «мой» или «другими».Но все же общий вопрос остается.