Передача cookie при авторизация на сайте

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Demiar, 7 Apr 2016.

  1. Demiar

    Demiar New Member

    Joined:
    16 Jan 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Всем привет)) пытаюсь программно авторизоваться на одном сайте, проблема в том, что для авторизации мы должны передать куку, которая вычисляется java-скриптом, я ее вычислил,
    в скрипте есть такая строчка:

    if(document.cookie.indexOf('cookie_j' + value)!=-1){document.form.submit();

    я так понял, что если у нас есть эта кука, то мы должны передать наши данные из формы (которые мы передали с помощью post запроса) на сервер с помощью submit, и проблема как раз в этом, что я не понимаю как это сделать

    Заранее Спасибо.
     
  2. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    585
    Reputations:
    52
    Для выполнения этой задачи нужно знать javascript и иметь опыт разработки сайтов. Без этих двух компонентов ты можешь надеяться лишь на то, что неосознанно введённый с клавиатуры код чудом заработает. Но в любом случае получится какашка.

    Если тебе нужно сабмитить форму то её, собсно, нужно сабмитить. В простейшем варианте это делается так:
    Code:
    <form method='POST' action='' name='mywonderfulform'>
    ... тут инпуты формы...
    </form>
    
    <script type='text/javascript'>
    document.mywonderfulform.submit();
    </script>
    
     
  3. Demiar

    Demiar New Member

    Joined:
    16 Jan 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    мне нужно реализовать это на c#, я понимаю, что выполняет код на javascript'e, но не знаю как сделать это на c#, мне нужно как то подтвердить данные, которые я переслал в форму
     
    #3 Demiar, 7 Apr 2016
    Last edited: 7 Apr 2016
  4. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    585
    Reputations:
    52
    Тебе нужно изучить протокол http и tcp.
    Когда изучишь и поймёшь как они работают - надо сниффером посмотреть какой хттп-запрос отправляет браузер и накодить на шарпе программу которая будет повторять этот хттп-запрос. Можно обойтись и без сниффера, хттп-запрос можно увидеть в инструментах разработчика, которые есть у всех нормальных браузеров.

    Гуглить примерно так: https://www.google.ru/search?q=c#+http+request
     
  5. Demiar

    Demiar New Member

    Joined:
    16 Jan 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    вы наверно не так поняли меня, я знаю как это все работает и я уже отправил post запрос, вычислил куку и теперь мне выскакивает страница со скриптом, в котором идет проверка на эту куку и в нем условие, которое я указал выше, и если эта кука есть то выполняется submit
    вот действия по-порядку:
    1. зашел на страницу с авторизацией методом get
    2. отправил post запрос с данными для авторизации
    3. мне вернулась страница со скриптом, вычисляющим cookie
    4. я ее вычислил с помощью одной библиотеки
    5. опять отсылаю на тот же адрес пост запрос только уже с этой кукой
    6. мне выводится тот же скрипт и должен выполнится submit
    то есть вот эта строка
    if(document.cookie.indexOf('cookie_j' + value)!=-1){document.form.submit();

    понятное дело, что когда мы авторизуемся через браузер, то все выполняется, так как он поддерживает javascript,а при программной авторизации нам нужно как-то выполнить эту строку в ручную
    вот и бьюсь над этим уже неделю, хотя мб эт легко))
     
    #5 Demiar, 7 Apr 2016
    Last edited: 7 Apr 2016
  6. pas9x

    pas9x Elder - Старейшина

    Joined:
    13 Oct 2012
    Messages:
    423
    Likes Received:
    585
    Reputations:
    52
    Зачем тебе выполнять яваскрипт? Он что, каждый раз новый генерируется? Так посмотри сниффером какой http-запрос отправляется при сабмите и повтори его на шарпе. Если у тебя возникают такие странные проблемы то тебе определённо нужно изучать хттп-протокол и как вообще работает браузер.
     
  7. Demiar

    Demiar New Member

    Joined:
    16 Jan 2010
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    просто получается так, что мне выдается та же самая страница со скриптом
    хотя вроде запросы делаю верные, не знаю в чем проблема
     
    #7 Demiar, 9 Apr 2016
    Last edited: 9 Apr 2016
  8. M_script

    M_script Members of Antichat

    Joined:
    4 Nov 2004
    Messages:
    2,581
    Likes Received:
    1,317
    Reputations:
    1,557
    submit - это и есть отправка данных из формы.
     
  9. cvncv

    cvncv New Member

    Joined:
    21 Aug 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    В ПМ отписал тебе
     
  10. SooLFaa

    SooLFaa Members of Antichat

    Joined:
    17 Mar 2014
    Messages:
    530
    Likes Received:
    499
    Reputations:
    154
    Куки не могут генерироваться на форме, точнее могут, но тогда это уже не куки а скорее всего токен. Ибо смысл кук файло теряется, но в любом случае берешь CHROME нажимаешь CTRL + SHIFYT + I идешь во вкладку Network и заполняешь ручками данные формы и жмакаешь SUBMIT кнопку. Как поймаешь запрос дергаешь оттуда ключевые заголовки И там будет COOKIE прям кокпипастишь и бахаешь в свою форму со своими кредами уже в C# через тонну методом HttpWebRequest - класс.
     
    _________________________
  11. cvncv

    cvncv New Member

    Joined:
    21 Aug 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    А если куки генерируются случайно?
     
  12. SooLFaa

    SooLFaa Members of Antichat

    Joined:
    17 Mar 2014
    Messages:
    530
    Likes Received:
    499
    Reputations:
    154
    Я просто не могу себе представить случайную генерацию кук. Их предназначение хранить какие то вещи на клиенте, например для сессию, токен авторизации, еще что нибудь, в чем смысл кук, которые генерируются каждый раз. И отсюда следующий вопрос. Зачем вообще нужно указывать если человек не авторизован а ему надо авторизоваться?!
     
    _________________________
  13. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    634
    Likes Received:
    246
    Reputations:
    42
    Что-то вы демагогию развели. Вывод сниффера на вашей программе, при нормальной авторизации и код формирования запроса в студию. Хватит уже гадать на кофейной гуще.
     
  14. cvncv

    cvncv New Member

    Joined:
    21 Aug 2010
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0

    Просто таким способом реализована система защиты от авторизации левыми методами.

    Сервер присылает JS с параметрами. JS генерирует запрос и генерирует cookie, они отсылаются на сервер. На сервере проверятется, является ли полученный результат равным ожидаемому.