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

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

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

17 ответов

19 просмотров

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

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

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 Автор вопроса

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

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

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

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

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
10
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Карта сайта