• Что нужно изучить, чтобы автоматизировать получение выписки из банка?

    @lutokris Автор вопроса
    Влад Григорьев, спасибо, пока у меня

    import requests

    session = requests.session()
    url = "https://dbo.albank.ru/rich/auth"
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'} #иначе ошибка 403
    session.get(url, headers=headers)

    data = {'j_username': 'aimdich', 'j_password': '123456'}
    with requests.Session() as session: session.post(url, json=data)

    если я делаю так, то получаю ошибку 403, а не 302 как должно быть в случае ошибочного пароля. Как я правильно понимаю это как-то связано с куками, хотя вроде когда происходит session.get куки должны записаться в сессии и когда происходит session.post они должны сами передаться сайту. В общем, завтра покопаюсь в теме. А так прошел по ссылке на альфабанк, сперва подумал что у меня с браузером что то нето, потом понял что особо не заморачивались с подразделом для API)
  • Что нужно изучить, чтобы автоматизировать получение выписки из банка?

    @lutokris Автор вопроса
    Влад Григорьев, спасибо, публичного апи у своего банка не нашел. Единственное что я пока смог понять - стоит система isimple bank, авторизация происходит через spring security. Попытался через F12 в браузере кое-что понять. Когда заполняю логин пароль и нажимаю войти происходит отправка
    Request Headers:
    POST /j_spring_security_check HTTP/1.1
    Host: dbo.albank.ru
    Connection: keep-alive
    Content-Length: 32
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    Origin: https://dbo.albank.ru
    Content-Type: application/x-www-form-urlencoded
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.152 YaBrowser/21.2.3.100 Yowser/2.5 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Sec-Fetch-Site: same-origin
    Sec-Fetch-Mode: navigate
    Sec-Fetch-User: ?1
    Sec-Fetch-Dest: document
    Referer: https://dbo.albank.ru/rich/auth
    Accept-Encoding: gzip, deflate, br
    Accept-Language: ru,en;q=0.9
    Cookie: session-cookie=166d216c9491c792552781d580267f93b027587923ad258bf10c8c7e1eafe7037dad14941bd2d4407d4a2e74c488d92a; localize=ru; KFP_DID=38fe93b4-30fc-b4e7-30cb-c61996e55805; KFP_SESSION_ID=8a9eef53-ee34-4736-9d29-46d109b3f33e_1; JSESSIONID=CA153502E8E0147FCC261ADCAC802433; oxxfgh=8a9eef53-ee34-4736-9d29-46d109b3f33e#3#1800000#5000
    Form Data:
    j_username=drew&j_password=12345

    так как я отправлял для проверки заведомо неправильные данные то я конечно получил в ответ:
    Responce Headers:
    HTTP/1.1 302
    Content-Length: 0
    Connection: keep-alive
    Set-Cookie: JSESSIONID=52FB8D286F2D7539CE43E8978E82C56C; Path=/; HttpOnly
    Location: /rich/auth?login_error=1
    Date: Wed, 17 Mar 2021 13:46:18 GMT

    Я не до конца понял используются ли тут токены или нет, а пока пытаюсь так:

    import requests

    data = 'j_username=drew&j_password=12345' #вроде такую конструкцию логин пароль туда он отправляет

    Url = 'https://dbo.albank.ru/rich/auth' #ссылка на сайт
    headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:45.0) Gecko/20100101 Firefox/45.0'} #пускай думают что я эппл
    r = requests.post(Url, headers = headers, json = data) #отправка запроса на сайт
    print(r.status_code)

    session = requests.Session()
    respons = session.get(Url, data=data, headers=headers)
    print(respons.status_code)

    пока получил код 200, что всего лишь означает что сайт существует и все)
    но дальше пока еще не пошел, читаю ищу изучаю пока
  • Правильно ли я понимаю ООП?

    @lutokris Автор вопроса
    я правильно понимаю, что самая главная задача ООП - она должна упрощать разработку сложной длинной программы и ее изменение, обновление. И в моем случае когда нужно лишь вести контроль поголовья, экономические расходы и доходы, наверное проще будет без объектов. База данных, структуры, функции для доступа, вывода, вычислений - этого думаю хватит.
  • Ассемблер, я правильно понимаю что по умолчанию в регистрах 0x00?

    @lutokris Автор вопроса
    ну я потому и спросил, эти функции пример с книги самоучителя по ассемблеру. Я конечно же прогуглил первым делом прогуглил int 10 функцию 0E и заметил что у нее нет возвращаемого значения, она просто выводит в консоль. Почему столько пушов, попов делают в примере с книги - я не понял и был бы рад если вы объясните.
  • Прочитать из стека внутри подпрограммы реально же?

    @lutokris Автор вопроса
    jcmvbkbc, спасибо, теперь уже понятнее стало. И я правильно понимаю так как код выполнения и стековые данные лежат в одной программной памяти, можно столько записать в стек что перезапишется область кода? И поэтому контроль перезаполнения стека должен реализовать сам программист. И вроде не все ж контроллеры имеют оперативную память, соответственно возможна следующая ситуация - допустим у меня есть сейф с парой лимонов и с кодовым замком на базе микроконтроллера, клавиатуры и реле.
    И если я приделаю к микроконтроллеру клавиатуру для получения кода от пользователя и напрямую запихаю все эти полученные данные в стек то возможно ситуация что пользователь может взять и хакнуть микроконтроллер методом "переполнения буфера" и открыть мой сейф?) хотя наверное это уж очень сложна)
  • Прочитать из стека внутри подпрограммы реально же?

    @lutokris Автор вопроса
    а как же принцип стека - "последний зашел, первый вышел"? Это ж получается тогда не стек, а массив какой-то. Я еще не дошел до темы про чтение из стека со смещением) пока в моих примерах попы да пушы)
  • Я новичок, как изучать микроконтроллеры AVR если их под рукой нет?

    @lutokris Автор вопроса
    ну я имел ввиду не почту России, а процесс отправки товара с Китая до почты нашей) У меня в Харбине пред посылка застряла аж 3 месяца, заказывал шторы для окна.