นี่เป็นวิธีการปฏิเสธการเข้าถึงโฟลเดอร์ในเว็บไซต์ของฉันหรือไม่? [ปิด]


0

ฉันกำลังจัดเก็บบันทึกของฉันในโฟลเดอร์ 'บันทึก' เหนือสารบบเว็บของฉัน

โครงสร้างไดเรกทอรีของฉันมีลักษณะเช่นนี้:

 web/  (document root)
 log/  (log files go in here)

ฉันได้ทำการเปลี่ยนแปลงการกำหนดค่า Apache ของฉันต่อไปนี้เพื่อให้แน่ใจว่าไม่มีไฟล์ในโฟลเดอร์นั้นที่อ่านได้ทั่วโลก:

  <Directory  absolute_path_to/log>
    Order allow,deny
    Deny from all
    Satisfy All
  </Directory>

[แก้ไข]

ฉันใช้เฟรมเวิร์ก symfony และวางไฟล์. htacess ไว้ในเว็บโฟลเดอร์

ไฟล์. htacess มีส่วน follwing:

##Protect your site<92>s PHP error log via htaccess
# prevent access to php error log
<Files ../log/php_errors.log>
  Order allow,deny
  Deny from all
  Satisfy All
</Files>

ฉันได้แก้ไขและเปลี่ยนแปลงเพื่อ จำกัด การเข้าถึงโฟลเดอร์บันทึกทั้งหมดแทนที่จะเป็นไฟล์เฉพาะ (ตั้งแต่ฉันจัดเก็บบันทึกอื่น ๆ ที่นั่น)

ฉันได้รับแจ้ง (Iganacio) ว่าเซิร์ฟเวอร์บล็อกการเข้าถึงโฟลเดอร์ที่อยู่นอกรูทเอกสารโดยอัตโนมัติ ในกรณีใด ๆ ถ้ามันไม่เจ็บที่จะทำเช่นนี้ฉันจะยังคงรวมส่วนในการกำหนดค่าโฮสต์เสมือนของฉันเพียงเพื่อจะอยู่ในด้านความปลอดภัย

นั่นเป็นวิธีที่ถูกต้องในการทำเช่นนั้นหรือไม่

คำตอบ:


1

สองสิ่ง:

  1. เส้นทางใน<Directory>ควรเป็นแบบสัมบูรณ์
  2. การนำทางไปยังไดเรกทอรีด้านบนรูทเอกสารได้รับการจัดการโดยเว็บเซิร์ฟเวอร์และไม่ได้รับอนุญาตโดยทั่วไป

ขอบคุณสำหรับข้อมูล. ตอนนี้ฉันได้แก้ไขเส้นทางของฉันเป็นเส้นทางที่แน่นอน โปรดดูคำถามที่แก้ไขของฉัน
morpheous

2

วิธีที่ง่ายที่สุดคือใส่สิ่งนี้ลงใน. htaccess ในล็อก / ไดเร็กทอรี:

deny from all

เมื่อคุณต้องการปกป้องทั้งไดเรกทอรีคุณไม่จำเป็นต้องมี<Files ...>คำสั่งเพียงแค่ปฏิเสธบรรทัดที่บล็อกทุกอย่างที่เข้ามาในไดเรกทอรีนั้น อย่างไรก็ตามอิกนาชิโอถูกต้องที่จะบอกว่าคุณไม่จำเป็นต้องใช้สิ่งนี้เลยเพราะล็อก / ไดเร็กตอรี่นั้นอยู่นอกเหนือการให้บริการของ Apache

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.