이미지 스타일 반환 액세스 거부


22

사용자가 특정 이미지 스타일의 이미지를 페이지에 삽입 할 수 있도록 삽입 모듈을 사용하고 있습니다. Drupal 7.20으로 업그레이드 한 후 이미지는 files/styles폴더에 저장되지 않으며 이미지 URL은 403 (액세스 거부) 오류를 반환합니다. 폴더 권한을 확인했으며 모두 777로 설정되어 있습니다.


media_flickr 모듈도 설치했지만 설치 후 이미지 스타일이 작동한다고 생각합니다. 내가 틀렸을 수도있다.
Evan Johnson

답변:


32

업데이트로 인해 현재 기능 중 일부가 중단되지 않도록 항상 업데이트하기 전에 새 릴리스의 릴리스 정보를 읽어 보는 것이 좋습니다.

Drupal 7.20릴리스 노트 는 다음과 같습니다.

이 릴리스의 보안 수정 프로그램은 Drupal에서 생성 된 모든 이미지 파생 URL을 변경하여 토큰을 쿼리 문자열로 추가합니다. 예를 들어, 이전에 http://example.com/sites/default/files/styles/thumbnail/public/field/image/example.png 와 같은 URL을 가리키는 링크 는 이제 http : / 와 같은 URL을 가리 킵니다 . /example.com/sites/default/files/styles/thumbnail/public/field/image/example.png?itok=zD_VaCaD )

settings.php사이트에 이미지 가 표시 되도록 다음 줄을 추가 할 수 있습니다 .

$conf['image_allow_insecure_derivatives'] = TRUE;

그러나 업데이트를 사용하지 않고 코어를 업데이트하는 것만 큼 좋을 것입니다. ;-)

페이지에서 유용한 링크들 :

최신 정보:

Drupal 7.21 릴리스 노트 부터 업데이트에는 Drupal 7.20 보안 릴리스에만 도입 된 비 호환성에 대한 수정 사항이 포함되어 있습니다. 따라서 버전 7.20의 보안 수정 프로그램을 사용하려면 최신 버전 (예 : 7.21)으로 업데이트하는 것이 좋습니다.


2
도! 예, 릴리스 노트를 읽는 것이 좋습니다. 'drushal drupal'을 입력하는 나쁜 습관이 있습니다. 고맙습니다!!!
Evan Johnson

에 패치 # 1923554이 근무 내 문제
레미

@ rémy 편집을 참조하십시오.
AjitS

안전하지 않은 파생 상품을 허용하고 싶지 않습니다. 이상한 점은 이미지 스타일 내에서 이미지를 만들려고 할 때 URL과 보안 토큰을 제공하지만 여전히 액세스 거부를 인쇄한다는 것입니다. 어떤 아이디어?
Alex

3
이 문제는 코드에서 이미지 경로를 생성하기 위해 image_style_path ()를 호출 한 경우 토큰이 올바르게 생성되도록 image_style_url ()로 변경되어야하는 경우에도 지속됩니다.
masterchief

3

그만한 가치가 있기 때문에 업그레이드 및 캐시 지우기 후 이미지 스타일 디렉토리가 더 이상 올바른 권한을 설정하지 않은 것으로 나타났습니다.

루트 스타일 / [나의 스타일]과 스타일 / [나의 스타일] / 공개는 물건이 제대로로드 되려면 755 여야합니다.

그것들을 모두 바꾸면 이미지가 제대로 보이지 않게되었습니다!


1

파일 시스템을 수정하십시오. / admin / config / media / file-system

내 설정은 다음과 같습니다.

공개 시스템 경로 설정 : sites / default / files

개인 파일 시스템 경로가 비어 있습니다.

임시 디렉토리 : / tmp

기본 다운로드 방법 (선택) 웹 서버에서 제공하는 공용 로컬 파일.


1

이 편집을 수행해도 문제가 해결되지 않고 오류가 발생했습니다.

modules / image / image.admin.inc의 775 행에는 패치가 필요합니다 ...

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

(내 명성이 낮기 때문에 아직 별도의 답변으로 언급 할 수 없습니다)

나는이 방법을 다시 구현했으며 그 문제가 처음 발생했을 때 많은 것을 수정했습니다.

$conf['image_allow_insecure_derivatives'] = TRUE;

또한 모든 변경 구현했습니다 +FollowSymLinks에를 +SymLinksIfOwnerMatch여전히 제대로 작동하려면 이미지 스타일 미리보기를 얻을 수 없습니다입니다.

다음 마지막 옵션은 서버 크기 사용자 권한을 변경하는 것입니다. 나는 그것을 고치거나 모두 깰 것이다.


0

modules / image / image.admin.inc의 775 행에는 패치가 필요합니다 ...

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

4
이것이 사용되면 새끼 고양이는 죽을 것입니다. (핵을 해킹하지 마십시오).
stefgosselin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.