<form action="login.php?do=login" method="post"
onsubmit="md5hash(vb_login_password, vb_login_md5password,
vb_login_md5password_utf, 0)">
przed złożeniem kodują strona hasło (onsubmit
). Powinieneś zrobić to samo w kodzie.
Wartość atrybutu action
nie jest zgodna z kodem (https://accounts.google.com...
). Wyślij prośbę o wpis do login.php?do=login
.
I istnieje wiele ukrytych pól:
<input type="hidden" name="s"
value="b804473163cb55dce0d43f9f7c41197a" />
<input type="hidden" name="securitytoken"
value="0dcd78b4c1a376232b62126e7ad568e0d1213f95" />
<input type="hidden" name="do" value="login" />
<input type="hidden" name="vb_login_md5password" />
<input type="hidden" name="vb_login_md5password_utf" />
Powinieneś wysłać te parametry też.
Zazwyczaj łatwiej jest zainstalować HttpFox Firefox Add-on, aby sprawdzić żądanie parametrów postu niż dekodować javascript.
Moja przeglądarka wysyła te parametry post (zrobione z HttpFox, hasło jest pass1
):
vb_login_username: user1
vb_login_password:
s: 5d8bd41a83318e683de9c55a38534407
securitytoken: 0dcd78b4c1a376232b62126e7ad568e0d1213f95
do: login
vb_login_md5password: a722c63db8ec8625af6cf71cb8c2d939
vb_login_md5password_utf: a722c63db8ec8625af6cf71cb8c2d939
Edit:
Poniższe działa na mnie, mogę dostać „Dziękuję do logowania się w " wiadomość w wydrukowanym kodzie HTML:
final HttpClient client = new DefaultHttpClient();
final HttpPost post = new HttpPost(
"http://www.xtratime.org/forum/login.php?do=login");
try {
final List<NameValuePair> nameValuePairs =
new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("vb_login_username",
"my user"));
nameValuePairs.add(new BasicNameValuePair("vb_login_password", ""));
nameValuePairs.add(new BasicNameValuePair("s", ""));
nameValuePairs.add(new BasicNameValuePair("securitytoken",
"inspected with httpfox, like f48d01..."));
nameValuePairs.add(new BasicNameValuePair("do", "login"));
nameValuePairs.add(new BasicNameValuePair("vb_login_md5password",
"inspected with httpfox, like 8e6ae1..."));
nameValuePairs.add(new BasicNameValuePair(
"vb_login_md5password_utf",
"inspected with httpfox, like 8e6ae1..."));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
final HttpResponse response = client.execute(post);
final BufferedReader rd = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null) {
System.out.println(line);
}
} catch (final IOException e) {
e.printStackTrace();
}
Dlaczego tam są wszystkie e spacje po '?' w adresie URL? –
Adres URL w kodzie nie jest zgodny z adresem URL witryny docelowej. Czy to nie tylko czerwony śledzia? – BalusC
Co jest w HttpResponse? Czy kod odpowiedzi 200? Czy zwrócony kod HTML nadal jest stroną logowania? – jeff