Como controlar acceso a la web??



  • Me gustaría controlar el acceso a ciertas páginas de mi futura web pero no se como hacerlo bien. Me explico:

    Lo primero dejar claro que lo quiero hacer yo "a pelo" para aprender de paso asique nada de php-nuke o cosas por el estilo.

    Y ahora lo que no se es como se hace para que nadie pueda "meterme mano".

    Veo dos formas y ninguna de ellas la veo segura:

    1. La facil sería dentro del archivo "index.php", por ejemplo, pues meter dos variables que sean "user" y "pass", y pedirle al usuario estos datos y si coinciden pues paso, sino a la calle:p, pero claro, de esta manera cualquiera podría cojer un gestor de descargas y bajarse el archivo "index.php" y abrirlo en su PC, ver que contenido le doy a las variables "user" y "pass" y entonces ya sabría como entrar.

    –--------------------------------------------------

    1. La segunda sería el pedirle un "user" y "pass" al usuario y entonces conectar a mi base de datos, en la que tendría una tabla con usuarios y pasword autorizados. Compruebo y si está pasa y sino no, pero en este caso lo veo más perjudicial ya que para conectarme a la BD en el "index.php" tienen que aparecer el nombre de la base de datos, el nombre de la tabla, y el usuario y password de acceso a la base de datos.
      Si alguien se baja este archivo tiene el user y pass de acceso a la BD y creo que es peor porque entonces podría conectarse a ella y hacerme polvo o incluso entrar en el panel de control que me da mi proveedor de hosting.

    Como leches se consigue hacer esto de manera que nadie pueda hacerme una jugarreta????



  • Publicado originalmente por vallekano
    **2) La segunda sería el pedirle un "user" y "pass" al usuario y entonces conectar a mi base de datos, en la que tendría una tabla con usuarios y pasword autorizados. Compruebo y si está pasa y sino no, pero en este caso lo veo más perjudicial ya que para conectarme a la BD en el "index.php" tienen que aparecer el nombre de la base de datos, el nombre de la tabla, y el usuario y password de acceso a la base de datos.
    Si alguien se baja este archivo tiene el user y pass de acceso a la BD y creo que es peor porque entonces podría conectarse a ella y hacerme polvo o incluso entrar en el panel de control que me da mi proveedor de hosting.

    Como leches se consigue hacer esto de manera que nadie pueda hacerme una jugarreta????**

    Eso sin olvidarte siempre de los problemas de legalidad, ya que si alguien no autorizado accede a dicha base de datos, te comes tú el marrón.
    Además, según qué servidores de Hosting, algunos soportan acceso a base de datos y otros no, eso deberías consultarlo con tu proveedor de hosting si es de pago o con la sección de ayuda si es un servicio gratuito.

    Quizás la solución esté en que la base de datos esté encriptada.
    Así, aunque alguien se la baje, no podrá leerla :)
    No sé como se haría, y lo que es peor, cómo se podrían acceder a sus datos :(

    PD: Si alguien te entra a tu panel de control de tu hosting, es un problema de seguridad de tu hosting, y no tuyo.



    1. La facil sería dentro del archivo "index.php", por ejemplo, pues meter dos variables que sean "user" y "pass", y pedirle al usuario estos datos y si coinciden pues paso, sino a la calle, pero claro, de esta manera cualquiera podría cojer un gestor de descargas y bajarse el archivo "index.php" y abrirlo en su PC, ver que contenido le doy a las variables "user" y "pass" y entonces ya sabría como entrar.

    El index.php se da al cliente una vez interpretado, por lo tanto sólo tiene html. Si alguién se lo baja con un gestor de descargas se bajará html generado por el código php, no el php (a no ser que el módulo de php del servidor no funcione)

    No te compliques la vida, en apache puedes poner un .htaccess para filtrar el acceso a una determinada carpeta.
    Te pongo un ejemplo que estoy usando yo bajo un apache para ver los logs del snort con AcidLab:
    fichero .htaccess

    AuthUserFile  /usr/share/acidlab/.htpasswd
    AuthName "AcidLab"
    AuthType Basic
    
    require valid-user
    
    ```Con _AuthUserFile_ le dices dónde encontrar los passwords y los usuarios permitidos (este fichero se crea con la utilidad _htpasswd_, man htpasswd)
    _AuthName_ es la cadena de texto que saldrá en la ventana emergente del navegador y lo demás es el tipo de autentificación y que se requiere un usuario válido como indica la última opción.
    
    NOTA: La autentificación va en texto plano, no va cifrada, por lo que es recomendable que esto se use bajo apache-ssl.


  • Publicado originalmente por Sheu_ron
    **Eso sin olvidarte siempre de los problemas de legalidad, ya que si alguien no autorizado accede a dicha base de datos, te comes tú el marrón.
    Además, según qué servidores de Hosting, algunos soportan acceso a base de datos y otros no, eso deberías consultarlo con tu proveedor de hosting si es de pago o con la sección de ayuda si es un servicio gratuito.

    Quizás la solución esté en que la base de datos esté encriptada.
    Así, aunque alguien se la baje, no podrá leerla :)
    No sé como se haría, y lo que es peor, cómo se podrían acceder a sus datos :(

    PD: Si alguien te entra a tu panel de control de tu hosting, es un problema de seguridad de tu hosting, y no tuyo.**

    Bueno, yo estaba pensando en que la clave de mi panel de control y de la base de datos era la misma pero realmente no es así, asique aunque sepan las pass de mi BD no les valdrá de nada. Otra cosa es que se descarguen la BD a su PC, cosa que no había pensado…................ Miraré lo de encriptarla.

    Mi Hosting si tiene BD, y es de pago.

    El index.php se da al cliente una vez interpretado, por lo tanto sólo tiene html. Si alguién se lo baja con un gestor de descargas se bajará html generado por el código php, no el php (a no ser que el módulo de php del servidor no funcione)

    Ahí te equivocas. Si en el explorador ves el codigo solo verás el HTML pero si descargas el fichero.php con un gestor de descargas lo ves entero.

    No te compliques la vida, en apache puedes poner un .htaccess para filtrar el acceso a una determinada carpeta.

    Creo que va a ser la mejor solución. Mañana lo miro.

    Ya os contaré.

    PD: De todas formas, ya por curiosidad, si alguien sabe como se hace con una base de datos que lo diga plis.



  • Publicado originalmente por vallekano
    **
    Ahí te equivocas. Si en el explorador ves el codigo solo verás el HTML pero si descargas el fichero.php con un gestor de descargas lo ves entero.
    **

    Prueba:

    wget [url]http://www.hardlimit.com/vn/index.php[/url]
    ```wget es un gestor de descargas, prueba con cualquier otro y veras como lo que recibes es html puro y duro (bueno y un poco de javascript embebido en el html)
    Cuando tu haces una petición http a un servidor web con soporte para php, si esa petición es para un *.php ese archivo será procesado antes por el módulo php de apache, dando lugar a html (o la salida que se haya programado en ese archivo)


  • Ostras, pos tienes razón. Reconozco mi error.

    Entonces no hay problema, puedo meter un user/pass en el propio .php y listos. Tampoco me importa que sea a prueba de bombas.

    Muchas gracias.


Accede para responder
 

Has perdido la conexión. Reconectando a Hardlimit.