Efetuar login automático em site

3 respostas
leandrobellini

Amigos, gostaria da ajuda de vocês para criar um programa em Java que efetue login automático em um site, ou seja, envie usuário e senha sozinho.
O problema é que este site usa um site de criptografia e uma validação em javascript, assim não tenho ideia de como trabalhar com isso.

Propriedades da página:

URL: http://192.161.1.1:1881/

<head>
	<title>TMSoft MyAuth 3 161, 30.31 - 14/01/2012 11:52:42</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<link rel="stylesheet" type="text/css" href="/src/css/theme_hotspot.css">
	<script language="JavaScript" src="/src/js/md5.js" type="text/javascript"></script>
	<script language="JavaScript" src="/src/js/hidden.js" type="text/javascript"></script>
	<script language="JavaScript" src="/src/js/vbl.js" type="text/javascript"></script>

	<script language="JavaScript">
	function selectform() {
		document.frmlogin.username.select();
		document.frmlogin.username.focus();
	}
	</script>

</head>

<body bottomMargin='0' leftMargin='0' topMargin='0' rightMargin='0' onLoad="selectform();">
	<form name="cryptform" action="?nocache=[telefone removido]&myauth3" method="post">
		<input type="hidden" name="username">
		<input type="hidden" name="password">
		<input type="hidden" name="action" value="auth">
		<input type="hidden" name="authtype" value="plain">

		<input type="hidden" name="popup" value="true">
		<input type="hidden" name="save" value="0">
	</form>
	<script type="text/javascript">
	<!--

	var JS_CRYPT = "1";
	var CHALLENGE = "962718715";

	function sendLogin() {
		var user = Trim(document.frmlogin.username.value);
		var pass = Trim(document.frmlogin.password.value);
		var save = 0;
		
		if(user == ''){
			alert("Informe o nome de usuário!");
			document.frmlogin.username.select();
			document.frmlogin.username.focus();
			return false;
		}
		if(pass == ''){
			alert("Informe a senha!");
			document.frmlogin.password.select();
			document.frmlogin.password.focus();
			return false;
		}
		document.cryptform.username.value = user;
		document.cryptform.save.value = save;
		// enviar
		if(JS_CRYPT == "2"){
			// criptografia de 1 via, criptografar senha com senha gerada pelo servidor
			document.cryptform.authtype.value = 'chap';
			document.cryptform.password.value = hex_md5(pass + CHALLENGE);
			document.cryptform.submit();
		}else if(JS_CRYPT == "1"){
			// criptografia de 2 vias, senha de criptografia
			// temporaria gerada pelo servidor baseado no numero de segundos desde 1970
			document.cryptform.authtype.value = 'hidden';
			document.cryptform.password.value = hidden_crypt(pass, CHALLENGE);
			document.cryptform.submit();
		}else{
			// nao criptografar, confiar na rede ou no SSL
			document.cryptform.authtype.value = 'plain';
			document.cryptform.password.value = pass;
			document.cryptform.submit();
		}
		return false;
	}

	//-->
	</script>

<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
<form name='frmlogin' method='post' action='?nocache=[telefone removido]&myauth3' onSubmit="return sendLogin();">
		<input type="hidden" name="action" value="auth">
		<input type="hidden" name="authtype" value="plain">
		<tr>

				<td width="101" align="center" valign="top"><table width="250" border="0" cellpadding="0" cellspacing="3">
                  <tr>
                    <td height="20" colspan="2" align="center"><strong><FONT class=menuheadermain>Autentica&ccedil;&atilde;o necess&aacute;ria, informe:</FONT></strong></td>
                  </tr>
                  <tr>
                    <td height="15" colspan="2"></td>
                  </tr>

                  <tr>
                    <td width="117" height="20" align="right"><FONT class=menuheadermain>Usuário:</FONT>&nbsp;</td>
                    <td width="124"><input name="username" type="text" id="username" value="" size="20" maxlength="60">
                    </td>
                  </tr>
                  <tr>
                    <td height="20" align="right"><FONT class=menuheadermain>Senha:</FONT>&nbsp;</td>
                    <td><input name="password" type="password" id="password" size="20" maxlength="40">

                    </td>
                  </tr>
                  <tr>
                    <td height="20" align="right">&nbsp;</td>
                    <td><input type="submit" value="Entrar">
                    </td>
                  </tr>
                  <tr>
                    <td height="20" colspan="2" align="right">&nbsp;</td>

                  </tr>
                  <tr>
                    <td colspan="2">
<!-- menu -->

                          <table border="0" width="100%" cellpadding="0" cellspacing="0">
                            <tr> 
                              <td width="20%" height="23" align="center"><a href="?console=panel"><img src="/src/icons/suport32.gif" hspace="5" vspace="5" border="0"></a></td>
                              <td width="80%"><a href="?console=panel">Painel 
                                de controle</a></td>
                            </tr>

                            <tr>
                              <td height="23" align="center"><a href="?console=info"><img src="/src/icons/skypechat32.gif" hspace="5" vspace="5" border="0"></a></td>
                              <td><a href="?console=info">Informa&ccedil;&otilde;es</a></td>
                            </tr>
                          </table>
<!-- fim menu -->
					</td>
                  </tr>

                </table></td>
		        <td colspan="2" align="center" valign="top"><img src="/src/images/notebook256.jpg" alt="MyAuth Gateway 3 - www.myauth.com.br" width="256" height="256" hspace="10" border="0"></td>
        </tr>
</form>
<!-- fim form -->
</table>

A página gera uma variável de chache cada vez que é acessada.
Oque eu poderia utilizar para resolver isso?
Obrigado desde já.

3 Respostas

M

Estou com o mesmo problema…

Preciso efetuar login em uma página, manter a sessão e efetuar consultas, passando de uma pagina pra outra, postando informação e realizando consultas,
pegar esse resultado e exportar para meu sistema.

Deixo aqui alguns links interessantes… de pessoas com dúvidas parecidas…


http://guj.com.br/java/89971-problemas-com-conexao#481498
http://javafree.uol.com.br/viewtopic.jbb?t=864841
Meu tópico a respeito
http://javafree.uol.com.br/topic-887376-Navegar-em-Paginas-HTML-usando-GET-e-POST-para-pegar-Conteudo-de-Sites.html

Espero que ajude…
Caso consiga resolver poste a solução… Com certeza irá ajudar muita gente que passa pelo mesmo problema…

Gleidson_Henrique

Amigo, nunca fiz isso.

Porém, acredito que você consiga enviar suas informações para a pagina de login e chamar o método do botão. Dessa maneira, o próprio site ainda estará utilizando a criptografia dele.

Outra coisa é que se é em Javascript, você tem acesso ao source do Javascript. Dê uma procurada, leia ele e entenda como a criptografia está sendo gerada.

Depois disso, você implementar em seu próprio sistema.

Abraços

Nicolas_Fernandes

E se você deixar os valores do usuário e senha dentro de uma Session? Você pode recuperar esses valores todas as vezes que requisitar a página de login e, se forem válidos, você automaticamente redireciona para as páginas de consulta. Que tal?

Criado 14 de janeiro de 2012
Ultima resposta 10 de out. de 2012
Respostas 3
Participantes 4