subida - subir archivos txt php
Bloquee el acceso directo a un archivo a través de http, pero permita el acceso de script php (6)
¿Los archivos están en el mismo servidor que el script PHP? De ser así, simplemente mantenga los archivos fuera de la raíz web y asegúrese de que su script PHP tenga permisos de lectura para donde estén almacenados.
Estoy cargando mis archivos (pdf, doc, flv, etc.) en un buffer y sirviéndolos a mis usuarios con un script. Necesito mi script para poder acceder al archivo pero no permitir el acceso directo a él. ¿Cuál es la mejor manera de lograr esto? ¿Debo hacer algo con mis permisos o bloquear el directorio con .htaccess?
Así es como evité el acceso directo desde la URL a mis archivos ini. Pegue el siguiente código en el archivo .htaccess
en la raíz. (no es necesario crear una carpeta adicional)
<Files ~ "/.ini$">
Order allow,deny
Deny from all
</Files>
mi archivo settings.ini
está en la raíz, y sin este código es accesible www.mydomain.com/settings.ini
La forma más segura es guardar los archivos que desea guardados fuera del directorio raíz de la web, como sugirió Damien. Esto funciona porque el servidor web sigue los privilegios del sistema de archivos local, no sus propios privilegios.
Sin embargo, hay muchas empresas de hosting que solo le dan acceso a la raíz web. Para evitar aún las solicitudes HTTP a los archivos, colóquelos en un directorio por sí mismos con un archivo .htaccess que bloquee todas las comunicaciones. Por ejemplo,
Order deny,allow
Deny from all
Su servidor web, y por lo tanto su idioma del lado del servidor, aún podrá leerlos porque los permisos locales del directorio le permiten al servidor web leer y ejecutar los archivos.
Aclamaciones.
Para evitar archivos .ini desde el acceso web, coloque lo siguiente en apache2.conf
<Files ~ "/.ini$">
Order allow,deny
Deny from all
</Files>
Si tiene acceso a su archivo httpd.conf (en ubuntu está en el directorio / etc / apache2), debe agregar las mismas líneas que al archivo .htaccess
en el directorio específico. Eso es (por ejemplo):
ServerName YOURSERVERNAMEHERE
<Directory /var/www/>
AllowOverride None
order deny,allow
Options -Indexes FollowSymLinks
</Directory>
Haga esto para cada directorio que desee controlar la información, y tendrá un archivo en un solo lugar para administrar todo el acceso. En el ejemplo anterior, lo hice para el directorio raíz, / var / www.
Esta opción puede no estar disponible con alojamiento externo, especialmente con alojamiento compartido. Pero es una mejor opción que agregar muchos archivos .htaccess
.
en httpd.conf para bloquear el acceso del navegador y wget para incluir archivos, especialmente db.inc o config.inc. Tenga en cuenta que no puede encadenar tipos de archivo en la directiva en su lugar crear varias directivas de archivos.
<Files ~ "/.inc$">
Order allow,deny
Deny from all
</Files>
para probar tu configuración antes de reiniciar apache
service httpd configtest
luego (agraciado reinicio)
service httpd graceful