Size: a a a

Django [ru] #STAY HOME

2019 September 05

AK

Alex K. in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
я не очень понял модель угроз
Модель - Вася Пупкин, который залогинен на не_моем сайте "aaa.ru", входит на мой сайт "bbb.ru". На моем сайте "bbb.ru" есть  js, который я чуть выше описал псевдокодом. Результат - от лица Васи Пупкина на "aaa.ru" появляется пост "я ем детей". Или, например, переводится на мой счет десяток догекоинов.
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Alex K.
Модель - Вася Пупкин, который залогинен на не_моем сайте "aaa.ru", входит на мой сайт "bbb.ru". На моем сайте "bbb.ru" есть  js, который я чуть выше описал псевдокодом. Результат - от лица Васи Пупкина на "aaa.ru" появляется пост "я ем детей". Или, например, переводится на мой счет десяток догекоинов.
запрос на API (чтобы он сработал) должен выполняться с учётом настроек CORS
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
если ты сделаешь запрос к API моего сайта со своего сайта из браузера пользователя - он не сработает
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
потому что твоего сайта нет в "белом списке" прокси моего API (криво объяснил, но общий смысл такой)
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
возможно, если пользователь зашел на сайт через какой-нибудь IE6, то у тебя получится выполнить этот код
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
ну, и фиг с ними))
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
в современных браузерах эти CSRF токены нужны чтобы не дать пользователю с моего сайта отправить запрос на мой API неожиданным для него образом
источник

AK

Alex K. in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
потому что твоего сайта нет в "белом списке" прокси моего API (криво объяснил, но общий смысл такой)
Ага, вот это уже ближе. А как бэкенд определяет, откуда пришли данные? По айпишнику, по каким-то хедерам?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
прочитай ссылку выше)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
pavel
если делать в методе этот вызов то норм всё
покажи код файла
источник

AK

Alex K. in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
прочитай ссылку выше)
"Для инициации Cross-origin запроса браузер клиента добавляет в HTTP запрос Origin (домен сайта, с которого происходит запрос). Например страница http://www.a.com/page.html пытается получить данные со страницы http://www.b.com/cors.txt. В случае если браузер клиента поддерживает технологию CORS, запрос будет выглядеть так:

GET /cors.txt HTTP/1.1
Host: www.b.com
Origin: www.a.com
"
Разве я не могу origin руками туда какой угодно указать во вредоносном js?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Alex K.
"Для инициации Cross-origin запроса браузер клиента добавляет в HTTP запрос Origin (домен сайта, с которого происходит запрос). Например страница http://www.a.com/page.html пытается получить данные со страницы http://www.b.com/cors.txt. В случае если браузер клиента поддерживает технологию CORS, запрос будет выглядеть так:

GET /cors.txt HTTP/1.1
Host: www.b.com
Origin: www.a.com
"
Разве я не могу origin руками туда какой угодно указать во вредоносном js?
попробуй)
источник

AK

Alex K. in Django [ru] #STAY HOME
Alex K.
"Для инициации Cross-origin запроса браузер клиента добавляет в HTTP запрос Origin (домен сайта, с которого происходит запрос). Например страница http://www.a.com/page.html пытается получить данные со страницы http://www.b.com/cors.txt. В случае если браузер клиента поддерживает технологию CORS, запрос будет выглядеть так:

GET /cors.txt HTTP/1.1
Host: www.b.com
Origin: www.a.com
"
Разве я не могу origin руками туда какой угодно указать во вредоносном js?
Просто та же питонья либа requests позволяет вообще какие угодно запросы формировать, думаю, в js должно бы быть что-то подобное.
источник

h

hunnidolla in Django [ru] #STAY HOME
менять базу данных в законченом проекте не сильно сложно?
источник

AO

Alexander Ovchinnikov 🦁 in Django [ru] #STAY HOME
Alex K.
Просто та же питонья либа requests позволяет вообще какие угодно запросы формировать, думаю, в js должно бы быть что-то подобное.
тут речь о том, что пользователь использует современый браузер и мой API не взломан и мой сайт не взломан)
источник

AK

Alex K. in Django [ru] #STAY HOME
Alexander Ovchinnikov 🦁
тут речь о том, что пользователь использует современый браузер и мой API не взломан и мой сайт не взломан)
Как выяснилось, js просто-напросто запрещает прописывать Origin руками. Остальное - ради бога, но Origin - нет. В принципе, подозревал, что как-то подобным образом оно и залеплено)
источник

AK

Alex K. in Django [ru] #STAY HOME
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
B
Начните с версий
я допилил свой кастомный адаптер для requests и заработало
источник

C

Cyberdine Engineering🐤 in Django [ru] #STAY HOME
openssl пересобирал, не помогало
источник