HTTP Post para fazer login em um site com timestamp, token, nome de usuário e senha

0

De um script, quero fazer login em um site. Para isso, procurei na fonte pela solicitação POST. A solicitação de postagem para acessar o site tem os dados "nome de usuário", "senha", "data e hora" e "token". No entanto, quando copio o carimbo de data / hora e o token, colo a solicitação de postagem na barra de endereços de meus navegadores com meu nome de usuário e senha, assim:

https://example.com/action/login?__elgg_token=905adbf0c0111fef78a8344c38c8f2a8&__elgg_ts=1461577445&username=foo&password=bar

o login não é bem-sucedido. Preciso de um token e timestamp diferente?

Isso é da fonte:

action="https://example.com/action/login" method="post" > 

<input type="hidden"  name="__elgg_token"  value="905adbf0c0111fef78a8344c38c8f2a8" />

<input type="hidden"  name="__elgg_ts"  value="1461577445" />

<input type="text"   name="username"  value="" class="form-control login-textarea form-control" />

<input type="password"   name="password"  value="" class="form-control login-textarea" />
    
por tzippy 25.04.2016 / 12:00

1 resposta

0

when I copy the timestamp and token and paste [it into a URL in a browser's address bar] ... the login is unsuccessful

AFAIK, a barra de endereço em navegadores comuns, faz com que o navegador emita uma solicitação HTTP GET, não uma solicitação HTTP POST.

Como Class Stacker comentou. Você não pode assumir que uma solicitação POST pode ser transformada em uma solicitação GET equivalente que será reconhecida pelo servidor.

From a script I want to login to a website [which expects an HTTP POST request]

Se você estiver usando uma linguagem de script de linha de comando convencional, há várias ferramentas que você pode usar para emitir uma solicitação POST.

De um script de shell, você pode usar ferramentas como o Wget ou o cURL para emitir solicitações POST e capturar cookies de sessão resultantes, etc.

Scripts escritos usando outras linguagens de script ou linguagens de propósito mais geral (Perl, Ruby, Python, etc.) geralmente possuem bibliotecas padrão que servem para emitir solicitações POST e GET e gerenciar cookies, etc.

Exemplo de página de manual do Wget

# Log in to the server.  This can be done only once.
wget --save-cookies cookies.txt \
     --post-data 'user=foo&password=bar' \
     http://server.com/auth.php

# Now grab the page or pages we care about.
wget --load-cookies cookies.txt \
     -p http://server.com/interesting/article.php

Outros exemplos não são difíceis de encontrar

por 25.04.2016 / 12:49

Tags