Los estilos de imagen devuelven el acceso denegado


22

Estoy usando el módulo Insertar para permitir a los usuarios insertar imágenes con un estilo de imagen específico en una página. Después de actualizar a Drupal 7.20, las imágenes no se almacenan en las files/stylescarpetas y la url de la imagen devuelve un error 403 (acceso denegado). Verifiqué los permisos de la carpeta, y todos están configurados en 777.


También instalé el módulo media_flickr, pero creo que mis estilos de imagen funcionaban después de la instalación. Podría estar equivocado.
Evan Johnson

Respuestas:


32

Siempre se recomienda leer las notas de la versión nueva antes de actualizar, para asegurarse de que la actualización no rompa algunas de las características actuales.

Las notas de la versión de Drupal 7.20 mencionan:

Las correcciones de seguridad en esta versión cambian todas las URL derivadas de imágenes generadas por Drupal para agregar un token como una cadena de consulta. (Como ejemplo, los enlaces que anteriormente apuntaban a una URL como http://example.com/sites/default/files/styles/thumbnail/public/field/image/example.png ahora apuntarán a una URL como http: / /example.com/sites/default/files/styles/thumbnail/public/field/image/example.png?itok=zD_VaCaD .)

Puede agregar la siguiente línea a su settings.phppara que las imágenes en el sitio funcionen:

$conf['image_allow_insecure_derivatives'] = TRUE;

pero sería tan bueno como actualizar el núcleo y no usar las actualizaciones ;-)

Algunos enlaces útiles de la página:

ACTUALIZAR:

De las notas de la versión de Drupal 7.21, la actualización incluye correcciones para incompatibilidades introducidas en la versión de seguridad de Drupal 7.20 solamente. Por lo tanto, se recomienda actualizar a la última versión, es decir, 7.21 para usar las correcciones de seguridad en la versión 7.20.


2
doh! Sí, leer las notas de la versión es bueno. Tengo la mala costumbre de escribir 'drush up drupal'. ¡¡¡Gracias!!!
Evan Johnson

el parche en # 1923554 funcionó para mi problema
rémy

@ rémy por favor vea la edición.
AjitS

No quiero permitir derivados inseguros. Lo extraño es que, cuando intento crear una imagen desde un estilo de imagen, me da la URL y el token de seguridad, pero todavía imprime el acceso denegado. ¿algunas ideas?
Alex

3
Este problema también persistirá si en algún lugar del código que estaba llamando a image_style_path () para generar la ruta de la imagen, esto debe cambiarse a image_style_url () para generar correctamente el token.
masterchief

3

Por lo que vale, también descubrí que de alguna manera mis directorios de estilo de imagen ya no tenían los permisos correctos después de una actualización y borrar el caché.

Los estilos raíz / [su estilo] y los estilos / [su estilo] / public deben ser 755 para que las cosas se carguen correctamente.

¡Cambiarlos todos causó que las imágenes aparecieran correctamente de nuevo!


1

Arregle su sistema de archivos: / admin / config / media / file-system

Aquí están mis configuraciones:

Configure la ruta del sistema público : sitios / predeterminado / archivos

La ruta del sistema de archivos privado está vacía.

Directorio temporal: / tmp

Método de descarga predeterminado (seleccionado) Archivos locales públicos servidos por el servidor web.


1

Realizar esta edición NO solucionó el problema y produjo errores:

La línea 775 de módulos / image / image.admin.inc necesita un parche ...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);

(dado que mi reputación es baja, no puedo comentar aún con esa respuesta por separado)

Lo implementé de esta manera y solucionó muchas cosas cuando surgió ese problema por primera vez:

$conf['image_allow_insecure_derivatives'] = TRUE;

También he implementado cambiando todo +FollowSymLinksa +SymLinksIfOwnerMatchpero todavía no soy capaz de conseguir estilos de imagen vistas previas para que funcione correctamente.

La siguiente y última opción es cambiar los permisos de usuario del tamaño del servidor, ack. Lo arreglaré o lo romperé todo.


0

La línea 775 de módulos / image / image.admin.inc necesita un parche ...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);

44
Los gatitos morirán si se usa esto. (Nunca hackear el núcleo).
stefgosselin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.