Foro de elhacker.net

Programación => 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
  1.    public static void main(String[] args) {
  2.  
  3.        try {
  4.            URL url = new URL (" ");
  5.            String encoding = Base64.encode("username:password".getBytes(StandardCharsets.UTF_8));
  6.  
  7.            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
  8.            connection.setRequestMethod("POST");
  9.            connection.setDoOutput(true);
  10.            connection.setRequestProperty  ("Authorization", "Basic " + encoding);
  11.            InputStream content = (InputStream)connection.getInputStream();
  12.            BufferedReader in   =
  13.                new BufferedReader (new InputStreamReader (content));
  14.            String line;
  15.            while ((line = in.readLine()) != null) {
  16.                System.out.println(line);
  17.            }
  18.        } catch(Exception e) {
  19.            e.printStackTrace();
  20.        }
  21.        JOptionPane.showMessageDialog(null,"Operación realizada correctamente");
  22.    }


· 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...