Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Дата: Пт, 25 Сентября 2009, 14:39 | Сообщение # 184
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (sp3d)
может по сути кто нибудь что скажет?!
А что тебе по сути надо, натоптали на ветке порядочно, и все равно ни кто ничего улавливать не желает. Для отправки запроса в сетку нужен не сервер а клиент, браузер это клиент. Для того, что бы посмотреть обмен между клиентом и сервером, есть программа, я давал ее название, она просто внедряется в передаваемый поток и показывает тебе и запросы клиента и ответы сервера, в текстовом и хекс виде, сохраняет его в лог файл. Анализируя их обмен можно найти какие данные надо передать для авторизации. В случае с хтмл, особых трудностей не предвидится, все идет в текстовом виде. Я пробовал снимать трафик с мускула, там ситуация посложнее, идет передача бинарных данных. Конкретного примера для твоего сайта я делать не буду, во первых это мне не интересно, во вторых учись сам делать такие веши, там ничего сложного нет. Начни с самых простых вещей, тогда поймеш что к чему. Получи лог обмена, и проанализируй его, если в процессе анализа лога будут проблемы, спрашивай, но по конкретным вещам.
Дата: Пт, 25 Сентября 2009, 16:10 | Сообщение # 185
Необукер
Проверенные
Сообщений: 4238
Offline
Ну снял я эти даные, ну посмотрел я на эти загаловки и что, я же не в пхп запрос формирую. как я из НБ отправлю заголовок именно такого вида. По пост-запросу там всего одна команда. А ни как, вот и получается, либо использовать как то скрипт(пхп) либо подключать яваскрипт, но с последним вообще непонятно, то что работает в локальном браузере, не работает в Нбшном (я поповоду считать куки) В целом то программа авторизации сделана, т.е. можно через НБ пройти авторизацию и попасть на главную страницу, загвоздка стала в переносе этих данный в локальный браузер
Дата: Пт, 25 Сентября 2009, 17:05 | Сообщение # 186
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Забудь про всякие пхп нб явы и прочее. Они только формируют текст, который передается на сервер, и для него нет разницы кто сформировал этот текст, хоть бы даже ты сам написал это в блокноте и отправил. Куки отправляются аналогично, в текстовом виде. Заголовок и дается что бы сервер знал что ему передают, данные запроса передаются в заголовке, если метод передачи гет, или после заголовка, если метод пост.
Quote (sp3d)
это тот же запрос только в этом ввиде или там другая инфа?!
Передаваемые данные, методом пост, могут иметь и чисто бинарный формат, если где то попадется значение 0 то для текста это равнозначно его концу, то есть дальнейшее даже если там текст ты не увидиш -видимый текст 0 невидимый текст. Для того что бы ты смог это увидеть, тебе и показывают данные в хекс виде, а с права от них их символьную интерпритацию. Так что ответ на вопрос - там показаны все данные, и те что тебе показали как строку, и те что не смогли показать. Ес ли будет туго с распознанием заголовков, спрашивай.
Добавлено (25 Сентябрь 2009, 17:03) --------------------------------------------- Вот тебе в помощь
там ты увидиш что то похожее тому что в твоем логе. После заголовка Content-Length: 209\r\n \r\n и двух пс\вк следуют собственно данные отправленные методом пост, а их общий размер указан в значении заголовка. Там в примере как раз и передаются два значения логин и пас. Возьми во внимание, что пременные передающие лог и пас могут иметь какое угодно имя Кукиши передаются в заголовке Cookie: и далее текст из кука.Каждый заголовок заканчивается пс\вк.
Добавлено (25 Сентябрь 2009, 17:05) --------------------------------------------- Да, там (в проге)перед заголовками хттп показывают данные тср, они отмечены цветом, не обращай на них внимания
Дата: Сб, 26 Сентября 2009, 01:50 | Сообщение # 189
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (DEMBEL)
Он как бы говорит тебе - "Погугли, приятель, по ходу ты чего-то недопонял" :)
DEMBEL, ну ты это конечно ну прям в точку sp3d, SetVar "[post_url]" "[post_url]Host: [host]\r\n" А куда ты это посылаеш, наверное на гугл, что у тебя в переменной host? SetVar "[post_url]" "[post_url]Content-Length: 101\r\n" Content-Length вроде как последним должно быть, 101 это типа длина пост данных, ты ее правильно подсчитал, или цыферь стырил от куда? Нада ее вроде как померять \r\n ну это для тех кто в "танке" перенос строки - возврат каретки, в нб он ж как бы вроде все же не так пишется а - #13#10 В общем сравни заголовок отсылаемый браузером и аналогичный проектом, усе там поймеш.
Добавлено (26 Сентябрь 2009, 01:45) --------------------------------------------- А так в приципе, нужный порядок понял правильно, надо просто немного подправить .
Добавлено (26 Сентябрь 2009, 01:50) --------------------------------------------- Там наверное ещи и кукиш работает, отлови есть ли заголовок Cookie:.
Дата: Сб, 26 Сентября 2009, 01:58 | Сообщение # 190
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (Alex3A)
Там наверное ещи и кукиш работает, отлови есть ли заголовок Cookie:.
а что делать, если он с куками работает? при запуске программы на другом компе он же другую информацию передавать будет, как ее "зашить" в приложение? Как задавать вопросы
Дата: Сб, 26 Сентября 2009, 02:21 | Сообщение # 191
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
st.invitation=[invitat]%20st.posted=set%20st.email=[loginO]%20st.password=[passO]%20st.remember=[remember]%20button_go=%D0%92%D0%BE%D0%B9%D1%82%D0%B8" Кто такой st.invitation, это что имя такое? Переменные передаются в виде имяпеременной=значение, причем в текстовом виде, а st.invitation похож на объект, имен таких не бывает.
А кукиш, это ведь простой текстовый файл, а авторизация дело интимное Стырили у тебя кук, и гуляют под твоим именем. Ну как зашить, сам знаеш, а где он лежит то же. Но не все так просто, в этом деле, надо разобраться что в куке лежит, каков срок его годности, ну и соответственно его рихтовать. Сайт положит тебе кук после авторизации, его то же надо отловить, если конечно ты хочеш загружать и следующие страницы. При загрузке следующей, в ее заголовке очевидно уже присутствует кук, тогда тебя воспринимают как своего. Однозначно все можно посмотреть сняв трафик, конечно там будет офигенная куча данных, но вроде в проге можно настроить чтоб снимало только то что нужно. О том как происходит обмен при загрузке страницы, я описывал.
Дата: Сб, 26 Сентября 2009, 09:33 | Сообщение # 192
Необукер
Проверенные
Сообщений: 4238
Offline
Quote (Alex3A)
Кто такой st.invitation
это у них на форме такая приблуда, незнаю что означает, но ее можно игнорировать (в моем примере она улетает пустой), а вот следующию st.posted=set надо обязательно включать в запрос и бутон тоже
Quote (Alex3A)
а st.invitation похож на объект, имен таких не бывает.
Он как бы говорит тебе - "Погугли, приятель, по ходу ты чего-то недопонял" :)
я отсылал этот запрос через адресную строку в браузере В НБ пишет, что обозреватель не найден /*---------------------------------------------------*/ Все понял, все способы что я пробовал работали так или иначе из под адресной строки, а такие запросы не катят Но НБ не может открыть сокет на 80-й порт нужного сервера, ну если и может, но только нет таких команд. Такое моно сделать в более серьёзной среде, либо через js или vbs, у них есть такие команды Короче вернулся к старому способу, спомощью функции старой бабушки JavaScript /*---------------------------------------------------*/
Сообщение отредактировано sp3d - Вс, 27 Сентября 2009, 18:03
Дата: Сб, 26 Сентября 2009, 12:41 | Сообщение # 193
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Ну знач бывает и такое st.posted=... тогда длину считай от послднего переноса строки, там где их два, и до конца пост данных D1%82%D0%B8" закрывающая скобка уже не считается. А вообще корректность заголовка определяй сравниванием аналогичного из браузера, с помощью CommView, там есть "реконструкция сесии", которая и покажет передаваемый текст.
Quote (sp3d)
я отсылал этот запрос через адресную строку в браузере
Если бы данные шли по гету, это бы прокатило, но по посту врят ли. И то только при передаче самих данных в кмандной строке
Все остальные заголовки добавляет сам браузер, а ты дал ему целую страницу текста, вот и пойми чего тебе надобно. Во вторых, я то не знаю как работает твоя функция отправки данных, может она сама ставит какие заголовки, по этому, смотри заголовок в CommView, возможно надо передавать только данные пост, то есть строку
, а остальные ставить не надо. Ну давай же уже как то разбираться по людски, делай то что я тебе говорю, а не то что тебе вдруг покажется разумным, в приведенной форме, идет обращение на локал хост, а не на сайт в сети. form action= определяет адрес куда будут отосланы данные. Так что в следующий раз приводи не текст формы, не код из нб, а только текст заголовка полученный при реконструкции сесии.
Добавлено (26 Сентябрь 2009, 12:41) --------------------------------------------- Вот, к примеру заголовки при загрузке браузером скрипта с сайта запрос
Code
GET /j/s132.js HTTP/1.1 Accept: */* Referer: http://www.unian.net/rus/online/10/ Accept-Language: ru If-Modified-Since: Thu, 27 Aug 2009 10:18:44 GMT User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Host: informer.bigbord.net Connection: Keep-Alive
ответ сервера, тут он говорит что то что запросил клиент не поменялось с пред идущей загрузки (то есть ява скрипт s132.js повторно грузить не надо, по этому ничего в ответе не передает)
Таким образом ты должен получить реконструкцию сесии, найти там нужные заголовки, которые осущевствляют авторизацию, и отловить заголовок ставящий кук. То есть из всего объема трафика тебе надо только пару заголовков. Твоя прога должна сформировать аналогичный заголовок, ну конечно не все может быть одинаково, но адреса и данные пост должны совпадать.
Дата: Вс, 27 Сентября 2009, 11:08 | Сообщение # 195
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (Alien)
может объяснишь что эта тонна кода даст?
Хоть и есть в данной куче ошибки, но в принципе мысль правильная, движок нб устанавливает какие то заголовки, ели чего надо добавить, то по идее так и делают. Однозначно определить можно перехватив трафик и посмотрев заголовок, в предидущем посте я привел примеры заголовков отправляемых браузером. Я где то когдато (наверное), выкладывал тср читый клиент, если отослать с его помощью текст заголовка, то сервер примет его за запрос браузера, и даст ответ. Если надо, могу описать что дает каждая строка заголовка, или посмотрите это в сетке.
Дата: Вс, 27 Сентября 2009, 11:20 | Сообщение # 196
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (Alien)
может объяснишь что эта тонна кода даст?
Если вкратце, то мы пытаемся сформировать и отправить POST-запрос серверу на авторизацию. Кстати, а как мы тут это делаем, запихиваем весь запрос в адресную строку браузера получается? Как задавать вопросы
Переменные гет передаются в конце адреса поле знака вопроса. Браузер получив адресную строку, формирует запрос с заголовками, их текст я приводил выше,
Code
GET http://чето.там/чето/тут.хтмл?переменная1=ххх&перменная2=ххх HTTP/1.1
Зголовок Content-Length:указывает длину передаваемых по пост данных, то есть в данном случае общую длину текста "itext=...forma". В ответ сервер выдает заголовок и запрошенные данные, в данном случае, текст хтмл страницы.
Code
HTTP/1.1Date:Вс, 27 сен 2009 11:02:17 Server: 3A-soft local/HTML SERVER Cashe-Control: no-store Expires: Вс, 27 сен 2009 11:02:17 Keep-Alive: timteout=15, max=95 Pragma: no-cache Connection: Keep-Alive Content-type: text/html 200 OK Content-lenght: 1562
И в том и в другом случаях, данные пост начинаются после двойного перевода строки, что и является маркером начала данных пост. Заголовки несут служебную информацию, и формируются клиентом и сервером. В языках, имеющих возможность отправлять данные по пост, обычно дают возможность, кроме передачи собственно пост данных, установки и своих заголовков. Заголовки отделяются друг от друга переводом строки, но как только встретится двойной перевод, то после него уже данные пост. Аналогично работают и остальные протоколы на тср основе(почта фтп, аськи..), только у каждого свои заголовки и способы передачи данных. По этому имея движок тсп, передав его посредством тот или иной текст, на нужный порт, можно превратить его у любой тср клиент, просто вставив текст из блокнота. Ну и конечно соответсвенно затем обработать полученный ответ Ну я надеюсь что вы поняли, что передавать это в адресной строке не нужно Команда нб InternetLink "[post_url]" очевидно устанавливает данные пост, и возможно может добавлять заголовки, а мож и нет, для этого я и говорю что надо сравнить перехваченные заголовки.
Дата: Вс, 27 Сентября 2009, 13:00 | Сообщение # 198
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (Alex3A)
Адресная строка браузера формирует только строку адреса, и в состоянии передать только данные по гет, ибо они идут в адресной строке
Я тоже удивляюсь, но насколько я понимаю, код приведенный sp3d пытается делать именно так - как раз с помощью InternetLink "[post_url]" - пытается браузер открыть по сформированной ссылке [post_url], в которой лежит весь POST-запрос в одну строку. По-моему, так ничего не выйдет. Как задавать вопросы
Дата: Вс, 27 Сентября 2009, 14:45 | Сообщение # 199
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (DEMBEL)
По-моему, так ничего не выйдет.
А что в нб больше ничего такого нет? Ну тогда запрос можно делать из формы объекта браузер, а если скрипт на сайте не различает пост и гет(маджик опция включена впхп), то прокатит и в адресной строке,
ну а если разбирает то только из браузера, или если есть тсп плагин, к стати, довольно привлекательная идея, движок один, а реализуемая функциональность по конкретной нужде. В вообще, арбитром может быть только перехваченный заголовок, я не исключаю, что возможен анализ адресной строки, для формирования правильного заголовка, в какой то фигне я такое видел.
Добавлено (27 Сентябрь 2009, 13:57) --------------------------------------------- Я теперь понял, откуда у него гугл возникает, поле ввод адреса в браузере, принимает только однострочный текст, при вставке там оказывается только первая строка, которая воспринимается как текст для поиска гуглем. дурная идея, надо будет попробывать превратить заголовок в ескайп последовательность и всунуть в адресную строку, канечно это мало вероятно, но ради экскремента попробую
Добавлено (27 Сентябрь 2009, 14:45) --------------------------------------------- Проверил, и точно фигня, все вставленное интерпритирует как гет.
Дата: Вс, 27 Сентября 2009, 16:28 | Сообщение # 201
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
Quote (DEMBEL)
как там в НБ post-запрос такой отправить, кто знает?
Элементарно, ватсон Следует воспользоватся услугами объекта браузер, хтмл формой, все равно, надо ведь как то то же показать ответ сервера, ведь регистрация не является самоцелью. Ну а если речь будет идти о каком либо ином, специализированном механизме(по типу ммб информера), то тут без плагина не обойтись.
Дата: Вс, 27 Сентября 2009, 18:10 | Сообщение # 202
Необукер
Проверенные
Сообщений: 4238
Offline
Quote (DEMBEL)
Ну вот, и что теперь делать, как там в НБ post-запрос такой отправить, кто знает?
я же написал, в посте(192) в самом низу итог Остальное НБ не поддерживает Но сейчас не тестирую, ибо меня заблокировали на однакласниках
Добавлено (27 Сентябрь 2009, 18:10) --------------------------------------------- я пока использую для отправки запроса яваскрипт Принцип такой сохраняю страницу в темпе, в ней заполненая форма и код js(для автосумбита) а потом просто открываю браузером по умолчанию по другому пока ни как
Дата: Вс, 27 Сентября 2009, 19:31 | Сообщение # 207
Друг клуба ММВ
Проверенные
Сообщений: 2713
Offline
sp3d, Скрипт там вроде и не нужон, форма осылается нажатием кнопки, ну разве что автоматом при запуске проги, если убрать комент pz .= "//post_Go();". Но в принципе легче будет просто грузить сам хтмл файл с формой, в браузер, ты ведь его и так туда имплементируеш, а что у тебя в браузере, какая нибудь страничка загружена, если нет то там и тега Body то нет, как в таком случае будет не скажу, objExplorer.Document.write(pz) будет как бы корректней?
Дата: Вс, 27 Сентября 2009, 20:58 | Сообщение # 209
Наш дизайнер
Администраторы
Сообщений: 5959
Offline
Quote (sp3d)
objExplorer.Document.write(pz) будет как бы корректней?
Вначале открыть - Open Писать - Write (или WriteLn - писать построчно) objExplorer.Document.Open objExplorer.Document.Writeln "<html><head><title>Заголовок</title></head>" objExplorer.Document.Writeln "<body><bgcolor='white'>" ... Если пишешь Write, то убедись что переменная сформирована правильно, со всеми кавычками и переводами строк. Попробуй вывести ее через msgbox (pz) и посмотри что он тебе выведет. - А вообще делать это для ИЕ дохлый номер, ошибка может возникать из-за отсутствия прав доступа - ты же пытаешься писать в страницу! Там по умолчанию в опциях безопасности это запрещено должно быть. -- ошибочку поправил в коде (подчеркнуто)
Дата: Вс, 27 Сентября 2009, 21:23 | Сообщение # 210
Удаленные
sp3d, я не понимаю смысл твоей программы, зачем авторизироваться через программу и далее сидеть на сайте с браузера по умолчанию? Как я уже говорил, повторюсь - "С таким же успехом я могу и в браузере автоизироваться сразу..."