Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: Mivi en 31 Mayo 2017, 10:37 AM

Título: Conexion a pagina web con contraseña (java)
Publicado por: Mivi en 31 Mayo 2017, 10:37 AM
Buenos días. Llevo un tiempo intentando acceder a una pagina web (requiere usuario y contraseña) desde java para obtener datos de su html.

He conseguido, acceder a la pagina y realizar la conexión con la misma. El problema es que guarda el html de la página de inicio (pagina en la que aparecen el usuario y la contraseña) en vez de la pagina que se obtiene tras validar la contraseña.

Adjunto el código para ver si alguien es capaz de resolver el problema. :-(

Muchisimas gracias!!
P.d: soy novata en java jeje


Código (java) [Seleccionar]
   public static void main(String[] args) {

       try {
           URL url = new URL (" ");
           String encoding = Base64.encode("username:password".getBytes(StandardCharsets.UTF_8));
           
           HttpURLConnection connection = (HttpURLConnection) url.openConnection();
           connection.setRequestMethod("POST");
           connection.setDoOutput(true);
           connection.setRequestProperty  ("Authorization", "Basic " + encoding);
           InputStream content = (InputStream)connection.getInputStream();
           BufferedReader in   =
               new BufferedReader (new InputStreamReader (content));
           String line;
           while ((line = in.readLine()) != null) {
               System.out.println(line);
           }
       } catch(Exception e) {
           e.printStackTrace();
       }
       JOptionPane.showMessageDialog(null,"Operación realizada correctamente");
   }



· Los códigos deben ir en etiquetas GeSHi
· No se debe hacer doble post
>aquí las reglas del foro (http://foro.elhacker.net/reglas.htm)
-Engel Lex
Título: Re: Conexion a pagina web con contraseña (java)
Publicado por: animanegra en 31 Mayo 2017, 10:54 AM
Estas realizando la autenticacion basic que es un proceso de autenticacion del servidor, y tu quieres realizar un proceso de autenticacion del formulario de POST. Son cosas totalmente diferentes.

Tienes que mirar como rellenar las variables de POST, primero deberas coger el formulario de login y ver como se llaman esas variables, y despues meter en la paeticion dichas variables POST con los valores correctos.

Si estas utilizando un usuario y password importante, ten en cuenta que hasta ahora estabas haciendo peticiones que todo el mundo con un snifer podria haber visto dentro de tu red. Te recomendaria cambiar el usuario y password de tu sistema porque has podido exponer tu password.

No se si se ha entendido lo que he explicado, si hay duda me comentas.
Título: Re: Conexion a pagina web con contraseña (java)
Publicado por: Mivi en 31 Mayo 2017, 11:03 AM
Gracias Animanegra!

No entiendo muy bien de qué me hablas... ¿Sería mucho pedir que me pusieras un ejemplo por favor? No estoy muy familiarizada con Java...

Muchas gracias!! :D
Título: Re: Conexion a pagina web con contraseña (java)
Publicado por: animanegra en 31 Mayo 2017, 11:25 AM
Igual primero lo básico. No vaya a ser que el problema no sea solo el Java.
¿Sabes como funcionan los procesos de autenticación POST o GET, como saber las variables que utilizará el servidor para utilizar la información de usuario y como funcionan las sesiones en servidores web?
Título: Re: Conexion a pagina web con contraseña (java)
Publicado por: Mivi en 31 Mayo 2017, 11:30 AM
Sí, he visto la teoría pero no sé implementarlo...