Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: bgnumis en 18 Mayo 2014, 20:17 pm



Título: Rewrite
Publicado por: bgnumis en 18 Mayo 2014, 20:17 pm
Hola ya he resuelto un problema anterior¡¡¡

LA pregunta ahora me surge por cuestiones de seguridad

OS pido ayuda y os doy mil gracias por adelantado porque me estoy volviendo majara

Si hago esto

Código
  1. $nombreUsuario = "http://localhost/Pagina2/Anuales/".$fila['user']."/Notas.pdf";
  2. echo '<a href="' .$nombreUsuario . '"> prueba </a>';


Me aparece el nombre de prueba al darle al "link" click me redirige a la página que quiero:

http://localhost/Pagina2/Anuales/josek/Notas.pdf (josek es el usuario conectado)

Tengo dos dudas, cuando la página ya esté colgada en la host si alguien sabe la estructura de folder y el nombre de usuario tal y como está aunque no esté registrado ¿podrá acceder al pdf?

¿Cómo prodria con modwirte rewrite para que al darle el click con el raton a la palabra "prueba" la www que me muestre arriba omita josek? Si es que se puede.


Muchas Gracias a ver si me podeis ayudar

Mod: Etiquetas GeSHi obligatorias. http://foro.elhacker.net/php/normas-t148495.0.html


Título: Re: Rewrite
Publicado por: bgnumis en 18 Mayo 2014, 23:44 pm
Se que es muy cansino que os preguntemos todo el rato pero a ver si alguien puede echar un cable y ayudarme con el cambio de web o como hacer para que sólo el usuario conectado y no otro marcando la ruta acceda al fichero...

Gracias  :P ;-) ;-) ;-) ;-)


Título: Re: Rewrite
Publicado por: JorgeEMX en 19 Mayo 2014, 07:35 am
Existen mejores formas de hacer lo que quieres resolver con mod_rewrite. Podrías usar variables de sesión y así no tener la necesitad de usar el nombre del usuario en la ruta. Como sea, con el nombre o sin el, verificando que el usuario en sesión es el que debe acceder a su propio PDF.

Lo otro sería, hacerte una key y codificarlo con MD5 que implique algunos valores únicos por usuario, y entonces tener una URL del tipo: http://localhost/Pagina2/Anuales/b686aac59bc44cbe8d54aaba3e86930c/Notas.pdf


Título: Re: Rewrite
Publicado por: bgnumis en 19 Mayo 2014, 17:25 pm
Hola,

Con lo del password funciona bastante bien (parece mucho más seguro). A ver si me puedes orientar con lo del modwrite.

Te pongo el código que tengo para "autenticar" al usuario hasta que empieza el html

Código
  1. <?php
  2. //Inicializar una sesion de PHP
  3.  
  4. //Validar que el usuario este logueado y exista un UID
  5. if ( ! ($_SESSION['autenticado'] == 'SI' && isset($_SESSION['uid'])) )
  6. {
  7.    //En caso de que el usuario no este autenticado, crear un formulario y redireccionar a la
  8.    //pantalla de login, enviando un codigo de error        <form name="formulario" method="post" action="index.php">
  9. ?>
  10.        <form name="formulario" method="post" action="index.php">
  11.            <input type="hidden" name="msg_error" value="2">
  12.        </form>
  13.        <script type="text/javascript">
  14.            document.formulario.submit();
  15.        </script>
  16. <?php
  17. }
  18.  
  19.    //Conectar BD
  20.    include("conectar_bd.php");  
  21.    conectar_bd();
  22.  
  23.  
  24.  
  25.  
  26.    $sql = "SELECT  CF,Direccion,PuertaLocalGaraje, tx_nombre,tx_apellidoPaterno,tx_TipoUsuario,id_usuario, tx_password
  27.            FROM tbl_users
  28.            LEFT JOIN ctg_tiposusuario
  29.            ON tbl_users.id_TipoUsuario = ctg_tiposusuario.id_TipoUsuario
  30.            WHERE id_usuario = '".$_SESSION['uid']."'";        
  31.    $result     =mysql_query($sql);
  32.  
  33.    $nombreUsuario = "";
  34.  
  35. $cif = "";
  36.  
  37.  
  38.    //Formar el nombre completo del usuario
  39.  
  40.  
  41. //Cerrrar conexion a la BD
  42. mysql_close($conexio);
  43. ?>
  44.  
  45.  
  46. <html lang="es">
  47. <head>


En el html lo que yo quisiera es que hubiera un link que al darle pinchando con el ratón click me habriera una fichero (que siempre se llamaría igual) dentro de una carpeta que se llamara para cada usuario que se pudiera logear tx_apellidoPaterno.

¿Esto es posible con rewrite? Cómo lo haría?


Título: Re: Rewrite
Publicado por: bgnumis en 19 Mayo 2014, 23:06 pm
Por mas que leo rewrite no veo el modo de hacerlo alguien me puede enviar algún link o pista para hacerlo?


Título: Re: Rewrite
Publicado por: JorgeEMX en 19 Mayo 2014, 23:52 pm
A ver, puedes colocar tu "link" visible al pdf de la siguiente manera: http://localhost/Pagina2/Anuales/Notas.php (o cualquier otro archivo)

Internamente el archivo Notas.php tendrá algo similar a esto:

Código
  1. <?php
  2. // Localidad de tu pdf
  3. $pdf = file_get_contents("/Pagina2/Anuales/".$fila['user']."/Notas.pdf");
  4.  
  5. // Muestra PDF
  6. header("Content-Type: application/pdf");
  7. header('Content-Disposition: inline; filename="Notas.pdf"');
  8. header('Content-Transfer-Encoding: binary');
  9. echo $pdf;
  10.