สไตล์ภาพกลับปฏิเสธการเข้าถึง


22

ฉันใช้โมดูลแทรกเพื่ออนุญาตให้ผู้ใช้แทรกรูปภาพด้วยสไตล์ภาพที่เฉพาะเจาะจงลงในหน้า หลังจากอัปเกรดเป็น Drupal 7.20 รูปภาพจะไม่ถูกเก็บไว้ในfiles/stylesโฟลเดอร์และ URL รูปภาพจะแสดงข้อผิดพลาด 403 (ปฏิเสธการเข้าถึง) ฉันตรวจสอบการอนุญาตของโฟลเดอร์แล้วและพวกเขาทั้งหมดถูกตั้งค่าเป็น 777


ฉันยังติดตั้งโมดูล media_flickr แต่ฉันเชื่อว่ารูปแบบภาพของฉันทำงานได้หลังจากการติดตั้ง ฉันอาจจะผิด
Evan Johnson

คำตอบ:


32

ขอแนะนำให้อ่านบันทึกประจำรุ่นของรุ่นใหม่ก่อนอัปเดตเพื่อให้แน่ใจว่าการอัปเดตจะไม่ทำลายคุณสมบัติปัจจุบันบางอย่าง

บันทึกการเปิดตัวของ Drupal 7.20กล่าวถึง:

การแก้ไขความปลอดภัยในรีลีสนี้จะเปลี่ยน URL ภาพต่อเนื่องทั้งหมดที่สร้างโดย Drupal เพื่อผนวกโทเค็นเป็นสตริงการสืบค้น (เป็นตัวอย่างลิงก์ที่ก่อนหน้านี้ชี้ไปยัง URL เช่นhttp://example.com/sites/default/files/styles/thumbnail/public/field/image/example.pngจะชี้ไปที่ URL เช่นhttp: / /example.com/sites/default/files/styles/thumbnail/public/field/image/example.png?itok=zD_VaCaD )

คุณสามารถเพิ่มบรรทัดต่อไปนี้เพื่อsettings.phpให้รูปภาพในไซต์ทำงานได้:

$conf['image_allow_insecure_derivatives'] = TRUE;

แต่มันจะดีพอ ๆ กับการอัพเดท core และไม่ได้ใช้ update ;-)

ลิงค์ที่มีประโยชน์จากหน้า:

UPDATE:

จากบันทึกประจำรุ่นของ Drupal 7.21 การอัพเดทจะมีการแก้ไขสำหรับความไม่เข้ากันที่เกิดขึ้นในการวางจำหน่ายการรักษาความปลอดภัยของ Drupal 7.20 เท่านั้น ดังนั้นจึงขอแนะนำให้อัพเดตเป็นเวอร์ชั่นล่าสุดเช่น 7.21 เพื่อใช้การแก้ไขความปลอดภัยในเวอร์ชั่น 7.20


2
DOH! ใช่การอ่านบันทึกประจำรุ่นเป็นสิ่งที่ดี ฉันมีนิสัยที่ไม่ดีเพียงพิมพ์ 'drush up drupal' ขอขอบคุณ!!!
Evan Johnson

แพทช์ใน# 1923554 ใช้งานได้สำหรับปัญหาของฉัน
rémy

@ rémyโปรดดูการแก้ไข
AjitS

ฉันไม่ต้องการอนุญาตอนุพันธ์ที่ไม่ปลอดภัย สิ่งที่แปลกคือเมื่อฉันพยายามสร้างภาพจากภายในสไตล์ภาพมันให้ URL และโทเค็นความปลอดภัยแก่ฉัน แต่ยังพิมพ์การเข้าถึงที่ถูกปฏิเสธ ความคิดใด ๆ
อเล็กซ์

3
ปัญหานี้จะยังคงมีอยู่หากทุกที่ในรหัสที่คุณโทรหา image_style_path () เพื่อสร้างเส้นทางภาพซึ่งจะต้องเปลี่ยนเป็น image_style_url () เพื่อสร้างโทเค็นอย่างถูกต้อง
masterchief

3

สำหรับสิ่งที่คุ้มค่าฉันยังพบอีกว่าไดเรกทอรีรูปแบบรูปภาพของฉันไม่ได้ตั้งค่าการอนุญาตที่ถูกต้องอีกต่อไปหลังจากการอัปเกรดและล้างแคช

พวกเขารูทสไตล์ / [สไตล์ของคุณ] และสไตล์ / [สไตล์ของคุณ] / สาธารณะควรเป็น 755 เพื่อให้สิ่งต่าง ๆ โหลดอย่างถูกต้อง

การเปลี่ยนพวกมันทั้งหมดทำให้รูปภาพต่าง ๆ ปรากฏอย่างถูกต้อง!


1

แก้ไขระบบไฟล์ของคุณ: / admin / config / media / file-system

นี่คือการตั้งค่าของฉัน:

ตั้งค่าเส้นทางของระบบสาธารณะ : sites / default / files

เส้นทางของระบบไฟล์ส่วนตัวนั้นว่างเปล่า

ไดเร็กทอรีชั่วคราว: / tmp

วิธีการดาวน์โหลดเริ่มต้น (เลือก) ไฟล์โลคัลสาธารณะที่ให้บริการโดยเว็บเซิร์ฟเวอร์


1

การดำเนินการแก้ไขนี้ไม่ได้แก้ไขปัญหาและทำให้เกิดข้อผิดพลาด:

บรรทัด 775 ของ modules / image / image.admin.inc ต้องการโปรแกรมแก้ไข ...

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แต่ยังไม่สามารถเรียกดูตัวอย่างสไตล์รูปภาพเพื่อให้ทำงานได้อย่างถูกต้อง

ตัวเลือกถัดไปและสุดท้ายคือการเปลี่ยนการอนุญาตผู้ใช้ขนาดเซิร์ฟเวอร์, ack. ฉันจะแก้ไขหรือทำลายมันทั้งหมด


0

บรรทัด 775 ของ modules / image / image.admin.inc ต้องการโปรแกรมแก้ไข ...

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.