Авторизация на флеш сайте

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Авторизация на флеш сайте

Сообщение ala-x » 02.03.2013 (Сб) 20:09

Подскажите пожалуйста возможно ли выполнить авторизацию на сайте в флеше.?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Авторизация на флеш сайте

Сообщение Хакер » 02.03.2013 (Сб) 21:11

Если ты думаешь, что твой вопрос сформулирван нормально, ты ошибаешься, и ошибаешься очень глубоко. Переформулируй, порадовав нас щедрым добавлением конкретики, а не заменой одних слов на другие синонимичные. Иначе тема будет закрыта.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ala-x
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 16.05.2009 (Сб) 16:03

Re: Авторизация на флеш сайте

Сообщение ala-x » 02.03.2013 (Сб) 21:43

Извините. Я хочу сказать, что есть страница сайта сделанная полностью во флеше. И форма авторизации тоже. К примеру -это tankionline.com . Как можно авторизоваться на таком сайте программно. Например на обычном сайте заполнение полей - это webbrowser1.documentall ("xxx").value =text1.text А каким образом узнать значение полей во флеше и заполнить их? Ведь код флеша просмотреть почти не возможно.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Авторизация на флеш сайте

Сообщение iGrok » 02.03.2013 (Сб) 22:02

ala-x писал(а):Например на обычном сайте заполнение полей - это webbrowser1.documentall ("xxx").value =text1.text А каким образом узнать значение полей во флеше и заполнить их? Ведь код флеша просмотреть почти не возможно.

Во-первых, "код флеша" посмотреть не просто легко, а ОЧЕНЬ легко. Гугл в помощь. Но в данном случае он вряд ли тебе нужен.

Во-вторых, любая аутентификация (авторизация - это совсем другое) - это не ввод каких-то там данных в какую-то там форму, а отправка соответствующего запроса на сайт и получение в ответ некоего аутентификационного токена (ид сессии, или чего-то в этом духе).

Так что для того, чтобы её произвести, тебе не нужен ни "webbrowser1.documentall("xxx").value = text1.text", ни "код флеша".

Вместо этого тебе нужно узнать, какие выполняются запросы и что возвращается в ответ. И соответственно произвести эти запросы с нужными аутентификационными данными.
label:
cli
jmp label

Filyus
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 07.07.2011 (Чт) 11:54

Re: Авторизация на флеш сайте

Сообщение Filyus » 06.03.2013 (Ср) 8:56

Если там правда протокол HTTP, то:
1. В Opera или в Chrome заходишь на нужную страницу, жмёшь Ctrl+Shift+I, заходишь на вкладку "Сеть" ("Network").
2. Авторизуешься на сайте, изучаешь какой запрос передавался - POST или GET и какие параметры были после "?" в адресе и какие в теле запроса (в случае с POST).
3. В VB 6: Project > References. Добавляешь Microsoft WinHTTP Services.
4. В коде прописываешь примерно такое:
Код: Выделить всё
Private q As WinHttpRequest
Private Sub Form_Load()
  Set q = New WinHttpRequest
  q.Open "GET", "http://ya.ru/?parametr1=" & UrlEncode("значение1") & "&parametr2=" & UrlEncode("значение2"), False
'для GET:
  q.Send
'для POST:
'  q.Send "parametr3=" & UrlEncode("значение3") & "&parametr4=" & UrlEncode("значение4")
  If q.Status = 200 Then
    MsgBox q.ResponseText
  End If
End Sub
Private Function UrlEncode(urlText As String) As String
  Dim i As Long, ansi() As Byte, ascii As Byte, encText As String
  ansi = urlText
  encText = ""
  For i = 0 To UBound(ansi)
    ascii = ansi(i)
    Select Case ascii
      Case 48 To 57, 65 To 90, 97 To 122
        encText = encText & Chr$(ascii)
      Case 32
        encText = encText & "+"
      Case Else
        If ascii < 16 Then
          encText = encText & "%0" & Hex$(ascii)
        Else
          encText = encText & "%" & Hex$(ascii)
        End If
    End Select
  Next i
  UrlEncode = encText
End Function

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 06.03.2013 (Ср) 9:29

Filyus писал(а):Private Function UrlEncode(urlText As String) As String

Что-то с ней не так... К тому же, url-encoded - не единственный формат post-запроса.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Авторизация на флеш сайте

Сообщение Хакер » 06.03.2013 (Ср) 10:04

Filyus , что такое ansi() в твоём коде?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Filyus
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 07.07.2011 (Чт) 11:54

Re: Авторизация на флеш сайте

Сообщение Filyus » 06.03.2013 (Ср) 10:46

Хакер писал(а):Filyus , что такое ansi() в твоём коде?

Байтовый массив.
Код: Выделить всё
s = UrlEncode(StrConv("строка", vbFromUnicode))

правильней вот так использовать. Это старая версия функции, поэтому сперва неправильно вспомнил как использовать.
Или можно заменить
Код: Выделить всё
ansi = urlText
на
Код: Выделить всё
ansi = StrConv(urlText, vbFromUnicode)
]Filyus , что такое ansi() в твоём коде?[/quote]
Байтовый массив для Windows-1251 кодировки.
[code]s = UrlEncode(StrConv(
Последний раз редактировалось Filyus 06.03.2013 (Ср) 12:16, всего редактировалось 1 раз.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 06.03.2013 (Ср) 10:56

Filyus писал(а):
Код: Выделить всё
      Case 32
        encText = encText & "+"

Должно быть "%20", а не "+", кстати.

Filyus
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 07.07.2011 (Чт) 11:54

Re: Авторизация на флеш сайте

Сообщение Filyus » 06.03.2013 (Ср) 10:59

Qwertiy писал(а):
Filyus писал(а):
Код: Выделить всё
      Case 32
        encText = encText & "+"

Должно быть "%20", а не "+", кстати.

пробел давно уже на "+" везде в запросах заменяется.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 06.03.2013 (Ср) 11:17

Filyus писал(а):пробел давно уже на "+" везде в запросах заменяется.

Только в поисковых запросах.

Filyus
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 07.07.2011 (Чт) 11:54

Re: Авторизация на флеш сайте

Сообщение Filyus » 06.03.2013 (Ср) 11:36

Qwertiy писал(а):
Filyus писал(а):пробел давно уже на "+" везде в запросах заменяется.

Только в поисковых запросах.

http://en.wikipedia.org/wiki/Query_string
часть URL encoding
In particular, encoding the query string uses the following rules:
Letters (A-Z and a-z), numbers (0-9) and the characters '.','-','~' and '_' are left as-is
SPACE is encoded as '+' or %20 [8]
All other characters are encoded as %FF hex representation with any non-ASCII characters first encoded as UTF-8 (or other specified encoding)

http://www.w3schools.com/tags/ref_urlencode.asp
URLs cannot contain spaces. URL encoding normally replaces a space with a + sign.

Можно ещё символы '.','-','~' и '_' оставить как есть, но я почему-то этого не делал.
Только про UTF-8 написано, что там надо оставлять только цифры и латинские буквы, но у меня код работает и так, так что пока исправлять не хочу.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Авторизация на флеш сайте

Сообщение Хакер » 08.03.2013 (Пт) 2:21

Filyus писал(а):Байтовый массив.

Код: Выделить всё
s = UrlEncode(StrConv("строка", vbFromUnicode))


правильней вот так использовать. Это старая версия функции, поэтому сперва неправильно вспомнил как использовать.
Или можно заменить

Убивать надо за такое. В жестокой форме.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Filyus
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 07.07.2011 (Чт) 11:54

Re: Авторизация на флеш сайте

Сообщение Filyus » 09.03.2013 (Сб) 13:31

Хакер писал(а):Убивать надо за такое. В жестокой форме.

За что? Стандартный приём же - перекодировка, а потом UrlEncode. Точнее - сперва перекодировка из стандартного двухбайтового UTF16 в однобайтную Windows-1251, а потом замена на цифры и проценты. Перекодировку я обычно делаю с помощью WideCharToMultiByte, но для примера, думаю, сгодится и StrConv.
Последний раз редактировалось Filyus 09.03.2013 (Сб) 13:38, всего редактировалось 1 раз.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Авторизация на флеш сайте

Сообщение Хакер » 09.03.2013 (Сб) 13:37

Стандартое говно, а не стандартный приём.
Конвертировать строку из Юникода в тупорылую-однобайтовую-кодировку, ради выполнения какой-то примитивной криво-написанной операции — это чудовищное преступление. Неотравтимое, и такое же тупое и бессмысленное, примерно как преобразование цветного фильма в чернобелый или как преобразование вордовского файла в скриншот вордовского файла.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Filyus
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 07.07.2011 (Чт) 11:54

Re: Авторизация на флеш сайте

Сообщение Filyus » 09.03.2013 (Сб) 13:47

Хакер писал(а):Стандартое говно, а не стандартный приём.
Конвертировать строку из Юникода в тупорылую-однобайтовую-кодировку, ради выполнения какой-то примитивной криво-написанной операции — это чудовищное преступление. Неотравтимое, и такое же тупое и бессмысленное, примерно как преобразование цветного фильма в чернобелый или как преобразование вордовского файла в скриншот вордовского файла.

Это к разработчикам сайтов надо обращаться, не ко мне.
Последний раз редактировалось Filyus 09.03.2013 (Сб) 13:49, всего редактировалось 2 раз(а).

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Авторизация на флеш сайте

Сообщение Хакер » 09.03.2013 (Сб) 13:48

Filyus писал(а):Это к разработчикам сайтов надо обращаться, не ко мне.

Причём тут разработчики сайтов?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Filyus
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 07.07.2011 (Чт) 11:54

Re: Авторизация на флеш сайте

Сообщение Filyus » 09.03.2013 (Сб) 13:49

Хакер писал(а):
Filyus писал(а):Это к разработчикам сайтов надо обращаться, не ко мне.

Причём тут разработчики сайтов?

Они же до сих пор используют Windows-1251-кодировку, а я только клиент пишу.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Авторизация на флеш сайте

Сообщение Хакер » 09.03.2013 (Сб) 14:07

Filyus писал(а):Они же до сих пор используют Windows-1251-кодировку, а я только клиент пишу.

—Что, все разработчики всех сайтов в мире используют кодировку Windows-1251?
—Чушь!
От общемирового множества сайтов доля сайтов, которые понимают только Win1251 — ничтожна. Только русские сайты могут обладать таким дурным качеством, как поддержка только этой кодировки. К сайтам на всех остальных языках это явно не относится. И я полагаю, реально из русских сайтов не дружат с юникодом, а требуют входных данных именно в win1251 — не больше половины сайтов.

Даже если какой-то конкретный сайт понимает именно (и только) Win1251, то у тебя юникодная строка генерируется не в Win1251, а в случайно взятую кодировку. Да, именно в случайно взятую. Потому что StrConv конвертирует из юникода не в Win1251, а в кодировку X. Где X — кодировка, выбранная в системных настройках. То что X окажется именно Win1251 — это наивнейшее предположение. Это значит создавать софт, который будет работать только на русской винде, или на винде, на которой надо предварительно лезть в языковые настройки.

Некриминально, но предельно тупо: проверять, что текущая кодировка по-умолчанию для неюникодных приложений это именно Windows-1251, и использовать StrConv только в этом случае, а в противном выдавать ошибку и ничего не делать.
А вот конвертировать без проверки, конвертировать в неизвестно какую кодировку — это криминально.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Filyus
Обычный пользователь
Обычный пользователь
 
Сообщения: 81
Зарегистрирован: 07.07.2011 (Чт) 11:54

Re: Авторизация на флеш сайте

Сообщение Filyus » 09.03.2013 (Сб) 14:30

Хакер писал(а):
Filyus писал(а):Они же до сих пор используют Windows-1251-кодировку, а я только клиент пишу.

—Что, все разработчики всех сайтов в мире используют кодировку Windows-1251?
—Чушь!
От общемирового множества сайтов доля сайтов, которые понимают только Win1251 — ничтожна. Только русские сайты могут обладать таким дурным качеством, как поддержка только этой кодировки. К сайтам на всех остальных языках это явно не относится. И я полагаю, реально из русских сайтов не дружат с юникодом, а требуют входных данных именно в win1251 — не больше половины сайтов.

Даже если какой-то конкретный сайт понимает именно (и только) Win1251, то у тебя юникодная строка генерируется не в Win1251, а в случайно взятую кодировку. Да, именно в случайно взятую. Потому что StrConv конвертирует из юникода не в Win1251, а в кодировку X. Где X — кодировка, выбранная в системных настройках. То что X окажется именно Win1251 — это наивнейшее предположение. Это значит создавать софт, который будет работать только на русской винде, или на винде, на которой надо предварительно лезть в языковые настройки.

Некриминально, но предельно тупо: проверять, что текущая кодировка по-умолчанию для неюникодных приложений это именно Windows-1251, и использовать StrConv только в этом случае, а в противном выдавать ошибку и ничего не делать.
А вот конвертировать без проверки, конвертировать в неизвестно какую кодировку — это криминально.

Я написал с StrConv только для примера. Не пугать же участников функцией WideCharToMultiByte.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Авторизация на флеш сайте

Сообщение ger_kar » 09.03.2013 (Сб) 14:54

Хакер писал(а): Это значит создавать софт, который будет работать только на русской винде, или на винде, на которой надо предварительно лезть в языковые настройки.
Если заранее известно, что софт будет запускаться на русской винде (а в россии винды в основном русские), то какой смысл все усложнять.
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Авторизация на флеш сайте

Сообщение Хакер » 09.03.2013 (Сб) 16:34

ger_kar писал(а):Если заранее известно, что софт будет запускаться на русской винде (а в россии винды в основном русские), то какой смысл все усложнять.

Смысл в том, чтобы создавать прямой софт, а не такой кривой, работая с которым проклинаешь автора, его родственников и рисуешь в воображении картины расправы над ним.
В России куча людей, которые работают на англоязычной винде, в добавок.

За программы, криво работающие с кодировками, надо расстреливать, ей богу. Эта та отрасль, где технических проблем обычно вообще нет, зато есть непролазная тупость и лень со стороны авторов.

Filyus писал(а):Я написал с StrConv только для примера. Не пугать же участников функцией WideCharToMultiByte.

В корне неправильная позиция.
Правильная позиция: я написал с WideCharToMultiByte. Не учить же участников неправильному функцией StrConv.

Допустимо делать сделанное только двумя возможными путями:
  • Либо делать функцию, которая в обязательном порядке имеет аргумент «целевая кодировка».
    Либо делать функцию, которая не имеет его, но конвертирует в кодировко-незавимисый UTF-16.
А писать код, пусть и для примера, который работает только в зависимости от фазы-луны — это гразное дело.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Авторизация на флеш сайте

Сообщение ger_kar » 09.03.2013 (Сб) 17:14

Хакер писал(а):Правильная позиция: я написал с WideCharToMultiByte. Не учить же участников неправильному функцией StrConv.
Ну вообще конечно странно, функция StrConvкак раз и задумывалась же для гибкости и гибкость этой функции наоборот благо, так как выходной результат зависит, не от фазы луны, а от настроек кодировки, которые доступны для изменения любому пользователю виндов, без перекомпиляции приложения. Т.е. нужно перенастроить пожалуйста, ноу проблем. А если жестко кодируется в кодировку которую задал программер, а юзеру нужно будет иное, то как раз и будет обломус юзеру :). Конечно хорошо если бы все было кодировко-независимым, но пока такового нет...
Хакер писал(а):Либо делать функцию, которая в обязательном порядке имеет аргумент «целевая кодировка».
Ну такStrConv таковой же по сути и является, только целевая кодировка задается в настройках системы, что собственно и соответствует концепции заложенной разработчиками и StrConv как раз и соответствует этой концепции, разве не так?
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Авторизация на флеш сайте

Сообщение Хакер » 09.03.2013 (Сб) 17:19

ger_kar писал(а):Ну вообще конечно странно, функция StrConvкак раз и задумывалась же для гибкости и гибкость этой функции наоборот благо, так как выходной результат зависит, не от фазы луны, а от настроек кодировки, которые доступны для изменения любому пользователю виндов, без перекомпиляции приложения.

До тебя не доходит, что нужная кодировка не равна системной кодировки, а равна кодировке, запрашиваемой сайтом?

StrConv задумывалась американцами, которые проблем с кодировками исторически не знают. Английские буквы во всех кодировках занимают одни и те же места/коды.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 09.03.2013 (Сб) 21:49

ger_kar писал(а):Если заранее известно, что софт будет запускаться на русской винде (а в россии винды в основном русские), то какой смысл все усложнять.

А потом весь форум будет завален вот таким, причём юникод там как бы поддерживается, хотя из кучи мест лезут баги с ним.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Авторизация на флеш сайте

Сообщение ger_kar » 09.03.2013 (Сб) 22:37

[Хакер] :: Оффтопик вырезан.
Бороться и искать, найти и перепрятать


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 72

    TopList