2008-11-25 24 views
6

En sitios Apache/PHP si quiero poner un archivo senstive dentro de las carpetas de mi sitio web, pongo un archivo .htaccess en esa carpeta para que los usuarios no puedan descargar el archivo confidencial.¿Qué reemplaza .htaccess en sitios IIS/ASP.NET?

Existe una práctica similar para los sitios IIS/ASP.NET, es decir, si tengo una cuenta de alojamiento compartido y no tengo acceso al servidor IIS. ¿Puedo hacer esto en web.config, por ejemplo?

p. Ej. el archivo ASPNETDB.MDF que la configuración de ASP.NET puso en el directorio App_Data. Asumo que esto está protegido por defecto, pero ¿dónde puedo cambiar la configuración de esta carpeta como podría con un archivo .htaccess?

Respuesta

7

Dentro de un ASP.Net web.config puede configurar ubicaciones para agregar seguridad a archivos y carpetas específicos. Además, puede eliminar todos los verbos de esos directorios:

<location path="Secret" allowOverride="false"> 
    <system.web> 
    <authorization> 
     <deny users="*" /> 
    </authorization> 
    <httpHandlers> 
     <remove path="*.*" verb="*"/> 
    </httpHandlers> 
    </system.web> 
</location> 

Sólo he utilizado la parte de la autorización de ese fragmento y funciona muy bien. El controlador debe bloquearlo y usar un filtro ISAPI podría darle los toques finales.

0

hay algunas cosas que puede hacer con web.config como definir la configuración de seguridad, etc ... Otras veces usted tiene que utilizar HttpModules o HttpHandlers, ven aquí: http://msdn.microsoft.com/en-us/library/aa719858(VS.71).aspx

Si no es así, se pueden encontrar diferentes ISAPI, pero en este caso necesita acceso a IIS. Por ejemplo, el ISAPI para emular apache mod reescritura:

> http://www.codeplex.com/IIRF

La otra pregunta, sí ASPNETDB.MDF en App_Data se protege normalmente (que depende de su administrador). Para cambiar la ruta, cambie la conexión de la cadena.

+0

Por supuesto, la respuesta ha cambiado desde 2008. .NET le da más posibilidades de redirección hoy en día – netadictos

0

Hay dos casos:

  • Si el servidor está usando IIS7 entonces hay una funcionalidad equivalente disponible utilizando el enfoque web.config para todos los archivos.
  • Si el servidor usa IIS6 o una versión anterior (y por el momento este es, con mucho, el caso más probable para el alojamiento compartido), entonces es más un problema. Si puede obligar a todas sus solicitudes a pasar por el controlador ASP.NET (que normalmente requiere acceso al servidor para configurarlo), nuevamente el enfoque web.config funcionará, pero de lo contrario necesitará otras herramientas y un proveedor de alojamiento receptivo. . Por esta razón, probablemente uno quiera IIS7 ...

Dicho esto, para asp.net hay archivos que de todos modos están protegidos por defecto: archivos en app_data como ya se mencionó además de tipos de archivos específicos (como .config). Además, uno esperaría que un servidor decente proporcionara un directorio al que no se puede acceder a través de la web: el nuestro ofrece una carpeta privada y otra web, ambas accesibles a través de FTP pero solo los contenidos de esta a través de la web.

0

IIS bloquea automáticamente el acceso a la carpeta/App_Data, y no servir contenido a partir de ahí.