Score:1

อนุญาตให้แสดงรายการไฟล์เมื่อดูไดเร็กทอรี แต่ได้รับการป้องกัน (ผ่านการพิสูจน์ตัวตน HTTP) เมื่อเข้าถึงโดยตรง

ธง br

ฉันสร้างไดเร็กทอรีที่ป้องกันด้วยรหัสผ่านโดยใช้ .htaccess และ .htpasswdแต่ไฟล์ไม่ปรากฏขึ้นเมื่อฉันไปที่ URL ไดเรกทอรี

ฉันมีสิ่งนี้ในตัวฉัน .htaccess:

#ป้องกันหลายไฟล์
<FilesMatch "^(.*).csv$">
AuthName "ไดอะล็อกพรอมต์"                                                                                                                                                                                       
AuthType พื้นฐาน
AuthUserFile /xxxxx/ทดสอบ                                                                                                                                              
#AuthUserFile ".htpasswd"                                                                                                                                                                                      
ต้องการผู้ใช้ที่ถูกต้อง                                                                                                                                                                                             
</FilesMatch>       

รายการไดเร็กทอรี - ไม่แสดงไฟล์ CSV

อัปเดต: ฉันกำลังปกป้องไฟล์ CSV ในไดเร็กทอรีนั้น สิ่งเหล่านี้จะหายไปจากรายชื่อไดเร็กทอรีเมื่อตั้งค่าคำสั่งการตรวจสอบสิทธิ์นั้น ปรากฏขึ้นเมื่อฉันลบออก ฉันต้องการให้อย่างน้อยเห็นไฟล์ในรายการไดเร็กทอรี แต่เมื่อเข้าถึงไฟล์เหล่านี้ จะมีการแจ้งเตือนให้ตรวจสอบสิทธิ์

djdomi avatar
za flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [วิธีกำหนดค่า apache เพื่อดูไฟล์ที่ซ่อนอยู่ (\`.\`)](https://serverfault.com/questions/245922/how-to-config-apache-to-view-hidden-files)
kz flag
"เมื่อฉันไปที่ _the_ URL" - URL อะไร คุณมีคำสั่ง mod_auth... ในไฟล์ `` คอนเทนเนอร์ แต่จากภาพหน้าจอของคุณ ดูเหมือนว่าคุณกำลังขอไดเร็กทอรีอยู่ใช่ไหม โปรดอธิบายอย่างชัดเจนถึงสิ่งที่คุณพยายามปกป้อง คำขอใดที่คุณกำลังทำ และผลลัพธ์ที่คาดหวังคืออะไร
Patoshi パトシ avatar
br flag
ฉันกำลังปกป้องไฟล์ CSV ในไดเร็กทอรีนั้น พวกเขาจะหายไปเมื่อมีการตั้งค่าคำสั่งการตรวจสอบสิทธิ์นั้น มันปรากฏขึ้นเมื่อฉันลบออก ฉันต้องการที่จะเห็นไฟล์เป็นอย่างน้อย แต่เมื่อเข้าถึงไฟล์เหล่านี้ จะมีการแจ้งเตือนให้ตรวจสอบสิทธิ์
Score:1
ธง kz

ฉันกำลังปกป้องไฟล์ CSV ในไดเร็กทอรีนั้น พวกเขาจะหายไปเมื่อมีการตั้งค่าคำสั่งการตรวจสอบสิทธิ์นั้น มันปรากฏขึ้นเมื่อฉันลบออก ฉันต้องการที่จะเห็นไฟล์เป็นอย่างน้อย แต่เมื่อเข้าถึงไฟล์เหล่านี้ จะมีการแจ้งเตือนให้ตรวจสอบสิทธิ์

เมื่อสร้างรายชื่อไดเร็กทอรีโดยใช้ mod_autoindex จะมีการออกคำขอย่อยภายในสำหรับแต่ละไฟล์ที่ปรากฏในรายการไดเร็กทอรี เมื่อใช้ก <FilesMatch "^(.*).csv$"> คอนเทนเนอร์ จากนั้นจะถูกประมวลผลสำหรับคำขอย่อยเหล่านี้ ดังนั้นรายการของไฟล์เหล่านี้ในรายการไดเร็กทอรีจึงถูกบล็อกด้วย

อีกทางเลือกหนึ่งของการใช้ <FilesMatch> คำสั่งคือการใช้ <If> การแสดงออกและการทดสอบกับ THE_REQUEST ตัวแปรเซิร์ฟเวอร์แทน เพียงเท่านี้ ประสบความสำเร็จ เมื่อ .csv ผู้ใช้ร้องขอไฟล์จริง ๆ ไม่ใช่เมื่อเรียกดูรายการไดเร็กทอรี

ตัวอย่างเช่น:

# ต้องเปิดใช้งานรายชื่อไดเรกทอรี (mod_autoindex)
ตัวเลือก + ดัชนี

# ป้องกันการเข้าถึงไฟล์ CSV แต่ยังคงมองเห็นได้ในรายการไดเร็กทอรี
<ถ้า "%{THE_REQUEST} =~ m#\.csv(\s|\?)#">
AuthName "ไดอะล็อกพรอมต์"                                                                                                                                                                                       
AuthType พื้นฐาน
AuthUserFile /xxxxx/ทดสอบ                                                                                                                                              
ต้องการผู้ใช้ที่ถูกต้อง                                                                                                                                                                                             
</หาก>

THE_REQUEST มีบรรทัดแรกของคำขอ HTTP เช่น. รับ /foo/test.csv HTTP/1.1 (ในกรณีของคำขอ GET สำหรับ /foo/test.csv) - และไม่เปลี่ยนแปลงตลอดคำขอ ดังนั้นเมื่อร้องขอไดเร็กทอรีเอง เช่น /ฟู/ จากนั้นบล็อกที่ปิดล้อมจะไม่ถูกประมวลผล และรายการไฟล์เหล่านี้จะไม่ถูกบล็อก

ภาวะแทรกซ้อนที่เพิ่มขึ้นก็คือ THE_REQUEST มี URL ทั้งหมดตามที่ร้องขอ ซึ่งอาจรวมถึงสตริงข้อความค้นหา ดังนั้นการตรวจสอบ (\s|\?) (เช่น. ช่องว่าง หรือ ตัวอักษร ?) คือการหลีกเลี่ยงการข้ามการตรวจสอบรหัสผ่านโดยการรวมสตริงข้อความค้นหา เช่น. /foo/test.csv?anything.

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา