Score:0

Apache 404 ล้มเหลวด้วย /boot.ini%2500.htm

ธง ph

ด้วยเหตุผลบางอย่าง htaccess ต่อไปนี้ จะ เปลี่ยนเส้นทางไปยังหน้า 404 หาก URL ที่ทดสอบคือ /boot.ini.htm แต่ ไม่ ถ้ามันเป็น /boot.ini%2500.htm.

ฉันต้องเปลี่ยนอะไรเพื่อให้ใช้งานได้หรือเป็นข้อบกพร่อง

ตัวเลือกทั้งหมด -ดัชนี
ตัวเลือก +ติดตามSymlinks

เอกสารข้อผิดพลาด 403 /site/404
เอกสารข้อผิดพลาด 404 /site/404

RewriteEngine เปิดอยู่

RewriteRule ^(ฟอนต์)($|/) - [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
กฎการเขียนซ้ำ ^ %1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\s\S]*)$ index.php/$1 [L,NC,QSA]

# ตรวจสอบให้แน่ใจว่ามีการส่งต่อส่วนหัวการอนุญาต
RewriteCond %{HTTP:การอนุญาต}
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:การอนุญาต}]

ServerSignature ปิด

php_value memory_limit 256M

เซิร์ฟเวอร์ของฉันคือ:

เวอร์ชันเซิร์ฟเวอร์: Apache/2.4.41 (Ubuntu)

สร้างเซิร์ฟเวอร์: 2021-06-17T18:27:53

kz flag
"เปลี่ยนเพื่อให้งานนี้" - ผลลัพธ์ที่ต้องการคืออะไร? `/boot.ini.htm` มีอยู่จริงเป็นไฟล์จริงหรือไม่ มี `/boot.ini%00.htm` อยู่หรือไม่ (เช่น ถอดรหัส URL `/boot.ini%2500.htm`) การตอบสนองเมื่อคุณขอ `/boot.ini%2500.htm` คืออะไร? ไม่มีสิ่งใดในไฟล์ `.htaccess` ของคุณที่จะกำหนดเป้าหมายคำขอเหล่านี้โดยเฉพาะ BTW คำสั่งของคุณอยู่ในลำดับที่ไม่ถูกต้อง ... กฎสุดท้ายเกี่ยวกับ 'การอนุญาต' ควรอยู่ก่อนกฎก่อนหน้า (ตัวควบคุมด้านหน้า) (แม้ว่าสิ่งนี้จะไม่เกี่ยวข้องกับปัญหาปัจจุบันของคุณก็ตาม)
Antony avatar
ph flag
ขอบคุณ - ขออภัยหากฉันไม่ชัดเจน ฉันต้องการให้เปลี่ยนเส้นทางไปยังหน้า 404 ไม่ - ไม่มี boot.ini.htm หรือ boot.ini%00.htm อยู่ ดังนั้นฉันจึงสงสัยว่า ErrorDocument 404 จะทำเช่นนั้น
kz flag
ดังนั้น คุณจะได้รับคำตอบอะไร (และสถานะ HTTP) เมื่อคุณร้องขอ `/boot.ini%2500.htm` ปัญหาที่อาจเกิดขึ้นกับ 404 `ErrorDocument` ที่กำหนดเองของคุณคือดูเหมือนคุณส่งคำขอ 404 ผ่านเฟรมเวิร์ก PHP ของคุณ (สมมติว่าไม่ได้เปิดใช้งาน MultiViews และ `/site/404.php` ไม่มีอยู่จริง) ดังนั้นการตอบสนองใดๆ ก็ตามที่คุณเห็นอาจ ขึ้นอยู่กับกรอบงานของคุณด้วย
kz flag
แล้วคำขอ `/something%2500else` ล่ะ? การตอบสนองเหมือนกันหรือไม่?
Antony avatar
ph flag
ใช่ ฉันเห็นไอคอน Codeigniter ในชื่อแท็บ ดังนั้นฉันเดาว่ามันกำลังกรองผ่าน แต่ถ้าไม่มี %2500 CI จะจัดการได้อย่างถูกต้อง
Antony avatar
ph flag
ตัวอย่างของ /something%2500else ของคุณยังให้ผลลัพธ์เป็นหน้า 404 แต่ด้วยไอคอน CI favicon ที่แนะนำว่าอาจถูกส่งผ่าน
kz flag
เบราว์เซอร์จะแคชไอคอน favicon (ในแท็บ) ไว้เสมอ ดังนั้นการเห็นสิ่งนี้จึงไม่ได้มีความหมายอะไรเลย การตอบสนองจริงที่คุณเห็นในเบราว์เซอร์คืออะไร - เป็นการตอบสนองที่สร้างโดยเซิร์ฟเวอร์/Apache หรือไม่ การตอบสนองข้อผิดพลาดเริ่มต้น? หน้าว่าง? รหัสสถานะ HTTP ของการตอบกลับคืออะไร (ตรวจสอบแท็บเครือข่ายในเครื่องมือพัฒนาเบราว์เซอร์) ... มันคือ 404, 200, 406, ??? การตอบสนองอาจมาจากกฎ mod_security หรืออะไรทำนองนั้น
kz flag
"`/something%2500else` ส่งผลให้เกิดหน้า 404 ด้วย" - เหมือนกับ `/boot.ini%2500.htm` หรือต่างกันหรือไม่ ลอง `/something%2500.htm` ด้วย
Antony avatar
ph flag
ในทุกอินสแตนซ์ (รวมถึง /something%2500.htm ล่าสุด) ฉันเห็นการตอบสนอง Apache 404 เริ่มต้นพร้อมชื่อ "ไม่พบ 404" และ "ไม่พบ: ไม่พบ URL ที่ร้องขอบนเซิร์ฟเวอร์นี้" เป็นเนื้อหา
kz flag
คุณมีสิทธิ์เข้าถึงการกำหนดค่าเซิร์ฟเวอร์หรือไม่
Antony avatar
ph flag
ใช่ เซิร์ฟเวอร์เป็นของฉันโดยสมบูรณ์
kz flag
ในกรณีนั้น การกำหนดค่าเซิร์ฟเวอร์/vHost คืออะไร คุณโหลดโมดูลอะไร กฎ mod_security? ไฟร์วอลล์? (นอกเหนือ: หากนี่คือเซิร์ฟเวอร์ของคุณ ทำไมคุณถึงทำอะไรมากมายใน `.htaccess`?)
Score:0
ธง kz

ในทุกกรณี ฉันเห็นการตอบสนองเริ่มต้นของ Apache 404

ในกรณีดังกล่าว Codeigniter จะไม่ดำเนินการตามคำขออย่างแน่นอน ดูเหมือนว่า 404 จะถูกเรียกใช้โดยเซิร์ฟเวอร์ Apache ก่อนหน้านี้ .htaccess มีการประมวลผลด้วยซ้ำ สิ่งนี้น่าจะเกิดจากบางอย่างเช่น mod_security (อาจมีเงื่อนงำบางอย่างในส่วนหัวการตอบสนอง HTTP)

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

แต่มันกลับเป็น 404 แล้ว และ 404 ก็เป็น 404 ดังนั้นมันจะไม่สร้างความแตกต่างให้กับบอท และ จริง ผู้ใช้ไม่ควรส่งคำขอดังกล่าว

โพสต์คำตอบ

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