ним имел только пользователь-отправитель?
а в чем проблема? Указываешь в таблице овнера по telegram_id и только ему даешь доступ.
в какой именно таблице?
ты хочешь в базе сохранять данные или что именно? Если ты пишешь боту, чат и так доступен только пользователю
данные сохранять в таблице
создаешь базу под потребности своего бота, пишешь туда информацию согласно твоей реализации, указываешь кто овнер данных согласно общения с ботом, даешь доступ к этим данным согласно запросу по критериям, указывая кто овнер
то есть мне надо давать доступ, если чат айди отправленного сообщения пользователем соответсвует данным в БД?
Представь, у тебя есть таблица, например 'покупки', туда пишутся все, что зависит с покупками пользователей и конечно же ты указываешь кто произвёл покупку. В твоём случае овнер будет некий telegram-Id пользователя. Мы сейчас не будем говорить про связи с таблицами и тд. Так вот, что нужно сделать, что бы получить все данные из таблицы какого-то пользователя, где пишутся все покупки всех пользователей? Надо использовать какие-то критерии выгрузки, в твоём случае, это Id пользователя. Например SELECT product_name FROM purchase WHERE telegram_id=0000000. Выдаст тебе все названия купленных продуктов пользователя 0000000. Короче говоря, советую сначала ознакомиться с базами данных и работой с ними, прежде чем приступать к написанию чего-то связанного с работой с базами.
мне нужно будет записать личные данные пользователя, которые может увидеть лишь сам пользователь
Тот же самый принцип, что и выше. Можно создать таблицу users и писать туда нужную информацию. Как первичный ключ можно использовать Id пользователя и функцию написать, что если пользователь хочет получить данные о себе, то вывести данные из таблицы users где Id записи = chat_id пользователя
да, но при этом я смогу получить сам чат айди и расшифровать закодированные данные.
Ты хочешь данные в публичный доступ что-ли вывести? Каким образом другие люди смогут обратиться к базе? Или ты боишься за бек и думаешь, что админы сольют все?
чтобы сам я не мог посмотреть
Если ты будешь их как-то кодировать и декодировать, тебя не спасёт это, так как у тебя будет известный алгоритм. Если ты действительно это хочешь, гугли способы шифрования и расшифровки данных по ключу/паролю. Шифруй их на входе и расшифровывай на выходе. Без знания пароля расшифровка будет невозможна, либо сложна
https://question-it.com/questions/87377/prostoj-sposob-kodirovat-stroku-v-sootvetstvii-s-parolem
по паролю. Изначально предполагалось, что паролем будет чат айди, но я его могу получить и посмотреть. Получается мне нужно как-то сгенерировать пароль для пользователя или сам пользователь должен отправить его, чтобы я не мог посмотреть.
Сгенерировать пароль можно на основе чего-то. Получить хеш сумму например на основе timedelta в момент записи данных. Потом потом отправить эту сумму как пароль обратно пользователю. Но если пользователь очистит чат, то потеряет контроль над данными. Если будешь использовать какие-то данные из его телеграм профиля, то всегда можно будет получить эту сумму при желании
я смогу получить сам хеш
Если ты задаешь такой глупый вопрос, то боюсь представить насколько у тебя уязвимый проект будет, или уже имеется.
Ты в курсе что хэш нельзя образовать обратно ?
знаю, но здесь хеш будет ключом
Возьми UUID, на основе него получи хеш, предоставь ставь эту информацию пользователю. Второй вариант - позволь пользователю самому выбрать пароль и получи хеш. Но учти, что ты можешь схалтурить и писать это все в логи)
если могу схалтурить, то не канает)
Вообще не понимаю зачем скрывать это от администратора/разработчика, у которого имеется доступ к логам или бд.
Тогда брось забудь
Я тоже. Ну раз есть такое требование. Вопрос лишь в том, что данные могут быть потеряны окончательно
Если код под твоим контролем, то ты всегда можешь схалтурить, как бы ты не хотел этого. Какой бы секретный код не был, разработчик может использовать тысячи способов сохранения пользовательских ключей, пинов, хеш сумм и тд
Видимо я немного понял, человек строит якобы анонимную систему судя по всему энтузиаст. Ну тут два простых варианта. 1.Забросить эту затею 2.Создавать хеш на основе чего-либо которое имеет обновление через или в какое то время, (временный токен для юзера) После чего дать возможность пользователю обновлять его.
можно попробовать через приватный канал сделать хранение
Думаю ты сам не понимаешь чем занимаешься, от сюда такие и вопросы.
Временный токен, это вариант. Но ведь на беке будет алгоритм и сам по себе токен будет сравниваться, значит можно получить на стороне бека этот одноразовый код. Совершенно анонимную систему будет тяжело сделать
Ничего не мешает добавить соль.
Тогда я не вижу других вариантов кроме как "Гость"
Не вижу вообще логике в его суждениях. В таком случае вообще пусть оставит функционал того чего хочет, а регистрацию убирает. Либо же использует для регистрации сторонние сервисы такие как: vk, google, fb и так далее.
шифруй ключом юзера, который есть только у него
Да ему уже раз десять это сказали. *3 или 5
да, но если я буду получать это сообщение, то будет не только у него
Да. Можно, но опять же, администратор имеет доступ к точке авторизации. Можно использовать принцип rsa токенов. Но по моему опыту, админы таких систем имеют доступ к ключам, генерируемым системой. Другой вопрос - а почему нет? Админы должны иметь способ предоставить ресурсы для восстановления забытых ключей
Обсуждают сегодня