169 похожих чатов

Подцаны привет, подскажите есть таблицы: Пользователь, компания, продукт, атрибуты, таблицы

в БД связаны по порядку. Есть контекст предоставляющей таблицу атрибуты, есть Id пользователя. Как мне изолировать данные в таблицы, чтобы пользователь не мог вытащить данные другого пользователя. Не ужели надо проверять всю цепочку от пользователя до атрибутов, чтобы сделать выборку атрибутов для конкретного пользователя?

17 ответов

22 просмотра

Вообще это делается только кодом, это часть программы. И это ты должен делать независимо от того сто там куда уходит корнями. Это просто запросы.

Надо проверять и проверяют.

Alex-Alex Автор вопроса

Если я у пользователя добавлю поле AccessKey типа Guid, и для каждой таблицы где необходимо делать разграничения тоже добавлю такое поле. И буду сверять по этому полю доступ в репо. Это норм тема? Практикуют так?

Очень туманно ты изложил... Сложно сказать. Вообще, проверка именно ДОСТУПА к данным на уровне строк таблиц реализуется очень редко, в большинстве случаев это - часть бизнес-логики и ею же и реализуется.

Что такое "каждой таблицы", что такое "Репо" — нифига не ясно.

Alex-Alex Автор вопроса

Ну смотри, создаем пользователя, генерируем ключ AccessKey. Когда пользователь пишет строки, присваиваем каждой строки этот ключ. Репо сокращение от репозитория, прослойка для чтения и записи в коде.

Это я догалался что репо это репозиторий. А вот что такое в твоём понимании репозиторий — я лично не могу догадаться.

А другие пользователи как будут к этим строкам обращаться?

Видимо речь про паттерн "Репозиторий"

Как будут соотносится AccessKey и пользователь? у каждого пользователя один Access Key,

Alex-Alex Автор вопроса

Ну у каждого пользователя свои записи данных и он с ними работает, разграничение этих данных идет по AccessKey. Когда пользователь получает данные по ключу идет фильтрация по AccessKey пользователя и AccessKey записи, а потом во втором условии по нужному ключу

Alex-Alex Автор вопроса

Да, у каждого пользователя AccessKey внутренний. Не фигурирует в Url или ещё где

Почему бы тогда просто в каждую запись не положить поле — идентификатор пользователя - владельца? (user_id) и всё? Зачем промежуточный AccessKey ?

Alex-Alex Автор вопроса

Ну можно и так. В моей системе id пользователя открытый фигурирует в url

И что?

Alex-Alex Автор вопроса

Тут сам принцип. Ну не хочется светить во вне ключ разграничения, мало-ли как подлезть могут, вопрос безопасности

Эм... Незнание чего -то не есть безопасность.

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта