New question

Question:

Date: 29-06-2019 06:17:04 (In Spanish)

Rutas Amigables, .htaccess, proteger archivos[Unresolved]

Buen Día.
Estoy usando htaccess para trabajar con rutas amigables, el enrutador creo que funciona bien, mi pregunta es como hago para proteger mis archivos .php que estan en el servidor, si ingreso la ruta y nombre de archivo correcto por la url el enrutador no funciona en ese caso, el navegador ejecuta el archivo que ingrese por la url.
mi configuracion de htaccess es la siguiente.

Options All -Indexes
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?c=$1 [L,QSA]

cuando el archivo o carpeta no existe es capturado .htacces y redirigido a una pagina que puse por defecto.

¿como impedir que se ejecute los archivos php si son ingresado por la url (con su ruta correcta) ?

Saludos y gracias por lo que puedan aportar.
Tags: htaccess - PHP - PHP Advanced Votes: 0 - Answers: 2 - Views: 12 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 02-07-2019 04:38:54 Hola Raul,
    Estás utilizando el patrón de diseño FrontController.

    En teoría solamente tendrías que exponer el archivo index.php al mundo. Todos los demás archivos deben permanecer ocultos.

    Esto es muy sencillo dependiendo de la estructura de tu proyecto. Muchos frameworks tienen un folder llamado webroot que es el que se expone al mundo. Dentro de ese directorio están otros folders como: img, styles, etc. con archivos estáticos.

    Por ejemplo si la estructura de mi proyecto fuera la siguiente:

    MiProyecto
    - modelos
    -- modelo.php
    - vistas
    -- vista.php
    - controladores
    -- controlador.php
    - webroot (este folder es el único que contiene archivos que se van a publicar|exponer al mundo)
    -- index.php
    -- images
    -- styles

    Entonces mi servidor web debe considerar como DocumentRoot (Apache) o root (Nginx) a la carpeta webroot. Eso lo determinas en las configuraciones del servidor web correspondiente.

    Espero que esto te ayude.

    Saludos!
      Votes: 1 - Link answer
     
  • Date: 12-07-2019 12:58:33 Hola Raul.
    Coincido con Ernesto, si tienes una estructura con un index.php no tendrías drama,
    por otro lado, resulta recomendable utilizar la menor cantidad de cosas que se ejecuten
    en el navegador, de ésta forma puedes evitar ejecuciones no deseadas; por otra parte,
    le ejecuciones del lado del servidor requieren mayoritariamente el uso de variables, por lo tanto,
    si alguien copia y pega en la url una dirección .php o bien cae en un formulario o en error, ya sea por entrar a una página de ejecución o la devolución de una ejecución.
    Si tu idea es utilizar varios proyectos en el mismo servidor, puedes: (a) utilizar carpetas de proyectos con login, se hace en la configuración de apache, (b) crear logín para acceso a cada proyecto, (c) utilizar las ejecuciones/consultas php dentro de una carpeta dentro o fuera del proyecto, de ésta forma, si alguien copia y pega la dirección, nunca llegaría a las directivas de ejecución.
    Suerte.
    Saludos.
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In