@python_beginnersЭта группа больше не существует

Страница 1532 из 1885
тнн Itjunky
02.04.2017
08:15:34
Печаль. Надо кодировать урл значит

И раскодировать на принимающей стороне

b0g3r
02.04.2017
08:16:01
Ты сейчас get параметры придумал?)

тнн Itjunky
02.04.2017
08:16:18
не придумал, а использовать решил

Google
b0g3r
02.04.2017
08:16:52
Ну ты только не сам это делай, а модуль используй)

тнн Itjunky
02.04.2017
08:17:15
Я flask юзаю

На принимающей стороне

Alex
02.04.2017
08:17:58
так это вчера была первопарельская шутка с переименованием чата ?

тнн Itjunky
02.04.2017
08:18:18
В половине чатов так пошутили

b0g3r
02.04.2017
08:18:45
https://docs.python.org/3/library/urllib.parse.html#module-urllib.parse

тнн Itjunky
02.04.2017
08:25:19
тоже вариант, но я как-то к фласкам привык, они в себя уже включают парсер реквестов

b0g3r
02.04.2017
08:29:56
Я про "кодировать урл"

Igor
02.04.2017
08:30:14
Urlencode

Igor
02.04.2017
08:34:59
Интересно, а POST из телеги можно отправить?
может через какие-нибудь инлайн кнопки можно?..

(не знаю)

b0g3r
02.04.2017
08:35:12
неа, нельзя

тнн Itjunky
02.04.2017
08:38:22
Urlencode
Эээээм, и чо? Оно ж не скрывает содержимое параметров

Google
тнн Itjunky
02.04.2017
08:38:31
Только всякие пробелы в %20 кодирует

b0g3r
02.04.2017
08:38:49
А как ты собрался скрывать содержимое параметров?)

тнн Itjunky
02.04.2017
08:39:07
Ну хотябы в base64

b0g3r
02.04.2017
08:39:26
кому надо раскопает ведь)

тнн Itjunky
02.04.2017
08:39:30
Да

Igor
02.04.2017
08:39:32
ну так 64 тоже не скроет

зачем?

тнн Itjunky
02.04.2017
08:39:53
Потому надо искать более стойкий шифр, например ассиметричное что-то

Igor
02.04.2017
08:39:55
в смысле, суть какая, зачем от юзераа скрывать так

b0g3r
02.04.2017
08:40:03
Может лучше расскажешь какая у тебя задача

Igor
02.04.2017
08:40:07
вот

да!

b0g3r
02.04.2017
08:40:15
Может у тебя обычные инлайн-кнопки с patload решат задачу хорошо

тнн Itjunky
02.04.2017
08:40:18
Что бы юзер не смог по дороге в браузере поменять содержимое параметров

Igor
02.04.2017
08:40:33
тогда подписывай хешем с солью

а потом проверяй хеш с солью

HMAC хуемое

тнн Itjunky
02.04.2017
08:41:13
Пока b64 сделаю, позже буду думать как лучше шифрануть за отдельные деньги =)

Igor
02.04.2017
08:41:31
бля, везет, за такую хуйню доп. бабла просить

тнн Itjunky
02.04.2017
08:41:37
=)

Google
тнн Itjunky
02.04.2017
08:41:44
У меня типа почасовой заказ

Artem
02.04.2017
08:41:51
зачем делать просто b64, когда есть jwt?

тнн Itjunky
02.04.2017
08:42:02
не слышал про такое

Artem
02.04.2017
08:42:04
там и b64 и json и hmac

https://jwt.io нормальная реализация на питоне https://github.com/mpdavis/python-jose

но надо заметить что там шифрования нет, только подпись, которая защищает передаваемые данные от изменений

b0g3r
02.04.2017
08:47:23
Я бы по нажатию на inline button генерил на своей стороне длинный случайный токен, связывал бы его с юзером у себя (засовывал нужные параметры, вот это всё) и отдавал ему ссылку типа example.com/my-long-token Когда юзверь бы переходил по ссылке, я бы смотрел соответствие токена, и вытаскивал бы из хранилища соответствующие параметры

тнн Itjunky
02.04.2017
08:50:59
Да, годный вариант.

спасибо

Dmitriy
02.04.2017
08:51:23
Если инлайн кнопка обрабатывается ботом (без урла), то достаточно хранить Dict [user, Dict [buttonkey, buttonvalue ] ]

тнн Itjunky
02.04.2017
08:52:07
Если инлайн кнопка обрабатывается ботом (без урла), то достаточно хранить Dict [user, Dict [buttonkey, buttonvalue ] ]
Где хранить? Там же два разных приложения. Одно отправляет линк, другое получает и обрабатывает парамертры запроса.

b0g3r
02.04.2017
08:52:12
Dmitriy
02.04.2017
08:52:33
b0g3r
02.04.2017
08:52:47
Тогда я что-то не совсем понимаю в терминологии

Можешь в терминологии телеграмовской доки

Dmitriy
02.04.2017
08:53:01
Тогда я что-то не совсем понимаю в терминологии
Value == что сделать в боте по приходу key Это не привязано к телеграму

b0g3r
02.04.2017
08:54:34
Всё, понял

Igor
02.04.2017
08:55:15
md5('a=1&b=2' + 'supersecurity') # пусть будет afaf0af0a0fa90192102491020000, лень считать http://127.0.0.1:5000/?a=1&b=2&hash=afaf0af0a0fa90192102491020000

так - не?

Google
Igor
02.04.2017
08:56:40
если изменят a или b, то хеш тоже поменяется

при этом т.к. у тебя в хеше соль, пользователь не сможет перехешировать так, чтобы хеш был правильный с измененными данными

b0g3r
02.04.2017
08:57:31
ток не мд5, пажалуста

пащади

Igor
02.04.2017
08:57:41
ну а на стороне сервера, который получает этот запрос, делаешь соответственно проверку, что пришли 'a=1&b=2', берешь свой 'supersecurity' ключ/соль, сверяешь хеш

я для примера

так-то надо и порядок аргументов учитывать

тнн Itjunky
02.04.2017
08:57:56
ток не мд5, пажалуста
Ну вот да, md5 потом не раскодируешь на другой стороне

Igor
02.04.2017
08:57:57
чтоб не ломалось если поменяют местами

Admin
ERROR: S client not available

Igor
02.04.2017
08:58:06
да зачем раскодировывать-то???

b0g3r
02.04.2017
08:58:07
тебе надо закодировать то что пришло и сверить, что хэши совпадают

Igor
02.04.2017
08:58:17
ты будешь пересылать данные прямым текстом

а хеш для того, чтобы убедиться, что данные по пути никто не поменял

тнн Itjunky
02.04.2017
08:58:26
Мне надо знать что именно я передал. А в случае с токеном, да, можно не париться.

b0g3r
02.04.2017
08:59:38
бот хранит supersecurity приложение хранит supersecurity бот генерирует ссылку a=1&b=2&hash=md5('a=1&b=2' + 'supersecurity') юзер переходи по ней приложение берет a=1&b=2, делает с ним md5('a=1&b=2' + 'supersecurity') и сверяет с hash

Google
Igor
02.04.2017
09:00:12
в куках ключ передавать, ксорить им на стороне клиента

b0g3r
02.04.2017
09:00:17
если хитрый пользователь попытается сделать так: ?a=2&b=1&hash=old_hash

b0g3r
02.04.2017
09:00:51
то ничего не получится - так как old_hash работает только для одной комбинации параметров

Igor
02.04.2017
09:01:08
там можно только дать ссылку, по которой юзер перейдет (GET-запросом в браузер, очевидно), и сервер этот запрос получит

Igor
02.04.2017
09:01:44
я не читал с чего всё началось

b0g3r
02.04.2017
09:01:49
То есть чтобы юзверь смог подделать запрос - ему нужно знать как генерируется хэш в нашем случае о способе генерации хэша знает только приложение и бот

Igor
02.04.2017
09:01:54
это такой hmac для бедных получается

Kam
02.04.2017
09:04:18
ретяб если я в .gitignore напишу __pycache__/

он будет из всех приложений игнорить этот каталог?

Igor
02.04.2017
09:05:13
вроде да

проще самому проверить)

да

http://stackoverflow.com/a/14058267

Artem
02.04.2017
09:22:18
md5('a=1&b=2' + 'supersecurity') # пусть будет afaf0af0a0fa90192102491020000, лень считать http://127.0.0.1:5000/?a=1&b=2&hash=afaf0af0a0fa90192102491020000
собственно, ты изобрел менее безопасный jwt, только там еще есть фичи типа срока действия токена

Igor
02.04.2017
09:22:56
да

я не изобретал ) я описал на пальцах

Artem
02.04.2017
09:23:47
но направление мысли верное. если нужно шифровать, в cryptography.io есть симметричный Fernet

terry
02.04.2017
09:23:49
я не изобретал ) я описал на пальцах
перепиши на гитхаб, пальцы вытри

Igor
02.04.2017
09:27:23
пусть остаются отпечаточки

Страница 1532 из 1885

Эта группа больше не существует Эта группа больше не существует