« Sabado 2:40 am | Página de inicio | Saracatunga catunga catunga »

18.05.2005

No uses .inc para tus includes

Ando medio desaparecido del mundo haciendo algunas cosas que mantienen muy ocupado, pero cada tanto surge alguna recomendacion al mundo exterior!

Solo vine para decir, no usen extensiones extrañas para los archivos que incluyen en sus aplicaciones, por que?

Piensen que en la carpeta /inc tienen alojados sus archivos a incluir en la aplicacion, como van a ser incluidos dentro de un .php supongamos, pueden tener cualquier extension, ahora que pasa si yo voy con mi browser a la carpeta /inc y esta el autoindex de apache activado? Voy a ver todos los includes.

Pero eso no es tan grave, lo que si es grave, es que si no son .php, al clickear sobre ellos voy a ver todo el codigo! Imaginense que feo seria que uno de esos sea el archivo de conexion a las bases de datos o de variables globales...

Hasta mi proxima aparicion en publico!

20:55 Anotado en Programación | Permalink | Enviar a Email

Comentarios

Cuando vuelva a programar en PHP, tomaré en cuenta este consejo. ;)

Anotado por: Federico | 18.05.2005

Tienes razon Diego, nunca me habia puesto a pensar en eso. Yo en general lo hago asi que me es muy util que me lo hayas recordado ;)

Anotado por: Pablo Viojo | 18.05.2005

Diego??? en realidad eres tú??' la vez pasada no tenías tanta barba XD

muy buen consejo Diego... ya tengo que publicar en mi web :p

saludos

Anotado por: Jesús Sánchez | 18.05.2005

muy buena recomendacion man, esos tips parecen inofensivos, pero son de mucho cuidado.

Ya te crackearon o que show?

Anotado por: stan | 19.05.2005

La sugerencia es relativamente buena.... es realidad me parece la mas simple.... pero hay mejores opciones, mas elavoradas y 'limpias'.
Por ejemplo imcluyendo los arhivos desde un path absoluto en un directorio no accesible desde la web... o simplemente creando un .htaccess para que los archivos dentro del directorio no se listen. Aqui les dejo un link donde pueden sacar la explicacion muy simple.... y quiza una que otra cosa mas.... :P
http://mundogeek.net/archivos/2005/05/04/htaccess/
http://www.google.com :)

Anotado por: Negro | 19.05.2005

Hay varias cosas que se pueden hacer, algunos prefieren darle doble extensión (.inc.php) para identificar cuáles son los que se usan en includes, o incluso se puede crear un htaccess para que php trabaje también sobre los archivos inc.

Suerte
Fede

Anotado por: Fede | 19.05.2005

Muy interesante.

Anotado por: Foro buscadores | 21.05.2005

Yo hago lo que dice Fede, a los includes les agrego el .php (me queda archivo.inc.php) ... muy buena data che :)

Anotado por: Rodrigo | 23.05.2005

Me parece que es algo que agrega, pero antes que nada creoq ue es mucho mucho mucho mas preocupante esas "configuraciones" de apache, por lo tanto creo que antes que nada es preferible configurar de una manera segura el apache y no tapar los agujeros con truquitos de programacion. Si de truquitos se trata tambien podriamos poner los includes en un directorio arriba del public_html y listo, pero insisto que estamos tratando el sintoma y no la enfermedad.

Feliz dia de la patriaaaa

Anotado por: Facundo | 25.05.2005

Yo hago esto desde hace rato, ademas de evitar configurar apache (o lo que fuere) para ejecutar con php todos los archivos que no sean ".php", o crear archivos htaccess extras, esta solucion hace que con un doble clic en el archivo se habra nuestro editor PHP favorito, ya que se supone adentro hay php...

Anotado por: JmN | 25.05.2005

Una solución útil es usar lo siguiente:

if ( str_replace('/', '/', $_SERVER['SCRIPT_FILENAME']) == str_replace('\', '/', __FILE__ ) ) {
header("HTTP/1.0 404 Not Found");
exit;
}

Si el archivo es llamado directamente, y no es incluido en otro archivo se retorna un error 404.

Anotado por: Nelson Rodríguez-Peña | 03.06.2005

Hola
Está bien la solución anterior pero me da una error, tal vez porque no he sabido dónde o cómo ponerlo... ¿en el principio de la página, tal cual, y a continuación el contenido?

if ( str_replace('/', '/', $_SERVER['SCRIPT_FILENAME']) == str_replace('', '/', __FILE__ ) ) {
header("HTTP/1.0 404 Not Found");
exit;
}

¿algún ejemplo?

Anotado por: Alfonso | 13.06.2005

Dejar un comentario