Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2012, 18:26   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Уважаемый Пепел Феникса, не в обиду, но этот совет не совсем спасет ситуацию. Если серьезно заниматься авторизациями и отправкой сообщений - планит 100% не спасет ситуацию. А уж с отправкой сообщений на твиттер - это точно. Вариант только один - ставить снифер в виде программы. Я всегда рекомендую HTTPAnalyzer, меня он еще никогда не подводил, точнее был один случай - но там скорее всего проблема в моей заинтересованности к реалзации проекта.
я без вас это знаю, если вы не заметили я сказал что можно попробовать через него.
я вообще использую бинарный сниффер.
Цитата:
p.s.: плохо что на форуме нет синтаксиса Delphi.
нужно применять нужный тэг.

Цитата:
И вообще, в дальнейшем планирую довольно плотно работать с сетью. Многие советуют переходить на C#, есть ли смысл? Или же все-таки продолжать с Delphi?
дело вкуса по большей части.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.01.2012, 11:25   #12
trafbite
Форумчанин
 
Регистрация: 21.07.2007
Сообщений: 103
По умолчанию

Ребят, ну натолкните кто-нибудь на путь истинный, что делаю не правильно?
trafbite вне форума Ответить с цитированием
Старый 29.01.2012, 12:42   #13
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

пинки в направлении ответа
пинок №1 - поставить снифер и научится в него смотреть
пинок №2 (более конкретный) - твиттер еще и хэш шлет при авторизации
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 29.01.2012, 14:16   #14
trafbite
Форумчанин
 
Регистрация: 21.07.2007
Сообщений: 103
По умолчанию

Цитата:
Сообщение от Mifody Посмотреть сообщение
пинки в направлении ответа
пинок №1 - поставить снифер и научится в него смотреть
пинок №2 (более конкретный) - твиттер еще и хэш шлет при авторизации
1. Done! вроде как
2. Хм... Нашел только еще на странице логина два скрытых поля:

Цитата:
<input type="hidden" name="scribe_log" />
<input type="hidden" name="redirect_after_login" value="" />
В связи с этим сразу добавил в проект:
Код:
Data.Add('redirect_after_login:');
Далее. Несколько раз попробовал залогиниться и посмотреть в сниффере. Увидел следующее:
Цитата:
session[username_or_email]:MyLogin
session[password]:MyPassword
scribe_log:["{\"event_name\":\"web:front:login_ callout:form:login_click\",\"noob_l evel\":null,\"internal_referer\":nu ll,\"user_id\":0,\"page\":\"front\" ,\"_category_\":\"client_event\",\" ts\":1327835579597}"]
redirect_after_login:
При разных попытках залогиниться выделенные цифры менялись. Я так понял, это нужно тоже добавить к заполняемым полям. Но, есть проблема:
При GET-запросе к главной это значение сервером не выдается. Оно появляется только при POST-запросе. Как же мне его выловить тогда, получается, что сначала нужно умышленно отправить заведомо неверные данные логина, взять это значение, а уж потом логиниться?

Или есть другой способ? В верном хоть направлении копаю?
trafbite вне форума Ответить с цитированием
Старый 29.01.2012, 16:10   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы уверены что это данные запроса? а не куки.

так же это значение может формироваться JS кодом.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.01.2012, 16:20   #16
trafbite
Форумчанин
 
Регистрация: 21.07.2007
Сообщений: 103
По умолчанию

На 99,9% уверен.
Есть к-н предположения?

Да, приведенные выше данные взял именно из раздела "Post Data" сниффера, а не из заголовков.

Скорее всего, JS и генерируется - что-то похожее в кодах на главной странице есть. Только помогите разобраться что именно он генерирует.
Вот это случаем не оно?
Цитата:
<script type="text/javascript">WATCH('javascript_logge d_out', function() {

function miniScribe(eName,more,cat){
var log=[],cat=cat||'client_event',more=more| |{};more.event_name=eName;for(var k in more){log.push('"'+k+'":"'+more[k]+'"');};
(new Image()).src='//scribe.twitter.com/scribe?category='+encodeURIComponen t(cat)+'&log='+encodeURIComponent(' {'+log.join(',')+'}')+'&ts='+(+new Date);
}
(function(){function C(M,L){var K=M.tagName?Mocument.getElementBy Id(M);return L?K.getElementsByTagName(L):K}funct ion J(P,O,N){for(var L=P.length-1;L>=0;L--){var M=P[L].className,K=M&&M.match(O);if(K){N. call(P[L],K[1])}}}function I(K,L){return(K.className=K.classNa me.replace(" "+L,""))}function F(K,L){return(K.className=I(K,L)+" "+L)}var D=document.body,H=document.getEleme ntById("doc"),B;if(!location.href.m atch(/#!\/./)){I(D,"user-style-twttr loading-body");F(D,"front-page");miniScribe("web:front:::impr ession",{context:"front"});window._ scribedFrontImpression=true}else{if (B=location.href.match(/#!?\/(login|download)(\/|$)/)){F(H,"route-"+B[1])}}var G=C(H,"div"),E="hasome";J(G,/holding/,function(){var M=this,K=C(M,"input")[0],L=C(M,"span")[0];if(K&&L){L.onclick=function(){K.fo cus()};K.onblur=function(){if(!K.va lue.length){I(M,E)}};K.onkeydown=fu nction(N){setTimeout(function(){if( (N&&N.keyCode===8)||K.value.length) {F(M,E)}else{I(M,E)}},0)}}});window .setInterval(function(){J(G,/holding/,function(){var K=C(this,"input")[0];if(K&&K.value.length){F(this,E)}}) },1111);var A={signin:"web:front:login_callout: form:login_click",signup:"web:front :signup_callout:form:signup_click", search:"web:front:main:search_field :search",language:"web:front:footer :language_selector:select"};J(G,/js-front-(signin|signup|search|language)/,function(L){var M=C(this,"form"),K=A[L];if(M&&M[0]){M[0].onsubmit=function(){if(!C(H).class Name.match("route-front")){miniScribe(K)}}}})}());
});</script>
<script type="text/javascript">WATCH.end('javascript_l ogged_out');</script>

Последний раз редактировалось trafbite; 29.01.2012 в 18:32.
trafbite вне форума Ответить с цитированием
Старый 29.01.2012, 19:27   #17
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

плин, Пепел Феникса, уже говорил, я говорил. Учить как авторизоваться с помощью этой статьи, ну как бы по мягче это сказать, не правильно это. Статья, на самом деле, полезна, когда ты для своего сайта чего пишеш (причем, для сайта, который ты сам написал), а для авторизации на том же твиттере - ну ничерта у Вас не получится с помощью ее.

UPD: Очень рекомендую со снифером разобраться, иначе сообщение Вы точно не сможете отправить . Там еще завернутее )
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно

Последний раз редактировалось Mifody; 29.01.2012 в 20:01.
Mifody вне форума Ответить с цитированием
Старый 30.01.2012, 08:05   #18
trafbite
Форумчанин
 
Регистрация: 21.07.2007
Сообщений: 103
По умолчанию

Та вы оба все как-то расплывчато отвечаете, дайте конкретный совет

Со сниффером разобрался. Перед тем, как пробовать авторизоваться в твиттере, я попробовал на форуме (не на этом) - там все нормально у меня проходит. А здесь кроме логина и пароля нужно еще что-то отправить.

Вот я и говорю, при авторизации браузером, в сниффере отправляются эти данные:

Цитата:
session[username_or_email]: {тра-ля-ля}
session[password]: {тра-ля-ля}
scribe_log: {тра-ля-ля}
redirect_after_login: {пусто}
Все правильно. В коде главной странички я нашел эти поля формы. При чем, последние два поля скрытые. Так вот, судя по снифферу, третье поле заполняется, а четвертое так и передается пустым.

И проблема в получении того значения, что нужно передавать в третье поле.

Если знаете как это сделать - дайте конкретный совет
trafbite вне форума Ответить с цитированием
Старый 30.01.2012, 08:41   #19
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

смотрите события формы(HTML-формы) OnSubmit например.
в общем изучайте события страницы(и не просто чтото похожее)

чтоб хорошо работать со страницами нужно знать HTML->JS.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.01.2012, 09:10   #20
trafbite
Форумчанин
 
Регистрация: 21.07.2007
Сообщений: 103
По умолчанию

Ну, судя по всему, насколько я понял, Вы сами не знаете
trafbite вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
https авторизация, обычный POST запрос не получается нужна какая дополнительная деталь temkas C# (си шарп) 1 06.12.2011 08:26
Https и GET запрос xakkkkker Работа с сетью в Delphi 1 30.10.2011 10:05
POST запрос на HTTPS Arsenx777 Работа с сетью в Delphi 3 12.10.2011 09:36
Передача данных Post на HTTPS talero Работа с сетью в Delphi 11 16.12.2009 03:06
HTTPS и POST Alex_C Работа с сетью в Delphi 4 25.10.2007 21:04