Điểm:0

Apache 404 không thành công với /boot.ini%2500.htm

lá cờ ph

Vì một số lý do, htaccess sau sẽ chuyển hướng đến trang 404 nếu url được kiểm tra là /boot.ini.htm nhưng không phải nếu nó là /boot.ini%2500.htm.

Tôi cần thay đổi những gì để làm cho nó hoạt động hay đây có phải là một lỗi không?

Tùy chọn Tất cả -Chỉ mục
Tùy chọn +Theo dõiSymlinks

ErrorDocument 403 /site/404
ErrorDocument 404 /site/404

Viết LạiEngine Trên

RewriteRule ^(phông chữ)($|/) - [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

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

# Đảm bảo tiêu đề Ủy quyền được chuyển qua
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Máy ChủChữ Ký Tắt

php_value memory_limit 256M

Máy chủ của tôi là:

Phiên bản máy chủ: Apache/2.4.41 (Ubuntu)

Máy chủ được xây dựng: 2021-06-17T18:27:53

lá cờ kz
"thay đổi để thực hiện công việc này" - kết quả mong muốn là gì? `/boot.ini.htm` có tồn tại dưới dạng tệp vật lý không? `/boot.ini%00.htm` có tồn tại không (tức là URL `/boot.ini%2500.htm` đã được giải mã)? Phản hồi khi bạn yêu cầu `/boot.ini%2500.htm` là gì? Không có nội dung nào trong tệp `.htaccess` của bạn nhắm mục tiêu cụ thể đến các yêu cầu này. BTW, các lệnh của bạn sai thứ tự... quy tắc cuối cùng liên quan đến `Ủy quyền` phải đi trước quy tắc (bộ điều khiển phía trước) trước đó (mặc dù điều này không liên quan gì đến vấn đề hiện tại của bạn).
Antony avatar
lá cờ ph
Cảm ơn - xin lỗi nếu tôi không rõ ràng. Tôi chỉ muốn nó chuyển hướng đến trang 404. Không - cả boot.ini.htm lẫn boot.ini%00.htm đều không tồn tại. Vì vậy, tôi đã nghi ngờ ErrorDocument 404 sẽ làm như vậy.
lá cờ kz
Vì vậy, bạn thực sự nhận được phản hồi nào (và trạng thái HTTP) khi yêu cầu `/boot.ini%2500.htm`? Một vấn đề tiềm ẩn với `ErrorDocument` 404 tùy chỉnh của bạn là dường như bạn chuyển yêu cầu 404 thông qua khung công tác PHP của mình (giả sử MultiViews không được bật và `/site/404.php` không tồn tại?) - vì vậy bất kỳ phản hồi nào bạn đang thấy có thể cũng phụ thuộc vào khuôn khổ của bạn.
lá cờ kz
Thế còn yêu cầu cho `/something%2500else` thì sao? phản ứng có giống nhau không?
Antony avatar
lá cờ ph
Có, tôi thấy biểu tượng Codeigniter trong tên tab nên tôi đoán nó đang lọc qua nhưng không có %2500 CI sẽ xử lý chính xác.
Antony avatar
lá cờ ph
Ví dụ về /something%2500else của bạn cũng dẫn đến trang 404 nhưng với biểu tượng yêu thích của CI cho thấy nó có thể được chuyển qua
lá cờ kz
Biểu tượng yêu thích (trong tab) được trình duyệt lưu vào bộ nhớ cache liên tục - vì vậy, điều đó không nhất thiết có ý nghĩa gì. Phản hồi thực tế bạn thấy trong trình duyệt là gì - đó có phải là phản hồi do máy chủ/Apache tạo không? Một phản hồi lỗi mặc định? Trang trống? Mã trạng thái HTTP của phản hồi là gì (kiểm tra tab mạng trong công cụ dành cho nhà phát triển của trình duyệt)... có phải là 404, 200, 406, ??? Phản hồi có thể là từ quy tắc mod_security hay gì đó?
lá cờ kz
"`/something%2500else` cũng dẫn đến trang 404" - điều đó giống với `/boot.ini%2500.htm` hay khác? Cũng thử `/something%2500.htm`.
Antony avatar
lá cờ ph
Trong tất cả (bao gồm các phiên bản /something%2500.htm) mới nhất, tôi thấy phản hồi 404 mặc định của Apache với tiêu đề "Không tìm thấy 404" và `Không tìm thấy: Không tìm thấy URL được yêu cầu trên máy chủ này.` làm nội dung
lá cờ kz
Bạn có quyền truy cập vào cấu hình máy chủ không?
Antony avatar
lá cờ ph
Yep máy chủ hoàn toàn là của tôi
lá cờ kz
Trong trường hợp đó, cấu hình máy chủ/vHost là gì? Bạn đã tải những mô-đun nào? quy tắc mod_security? Bức tường lửa? (Ngoài ra: Nếu đây là máy chủ của bạn thì tại sao bạn lại làm quá nhiều trong `.htaccess`?)
Điểm:0
lá cờ kz

Trong mọi trường hợp, tôi thấy phản hồi 404 mặc định của Apache

Trong trường hợp đó, yêu cầu chắc chắn không được Codeigniter xử lý. Có vẻ như lỗi 404 đang được kích hoạt bởi máy chủ Apache, trước đó .htaccess thậm chí còn được xử lý. Điều này rất có thể được kích hoạt bởi thứ gì đó như mod_security (có thể có một số manh mối trong tiêu đề phản hồi HTTP).

URL có chứa % có khả năng gây ra một mối đe dọa an ninh. Vì vậy, sẽ không nhất thiết là bất thường khi có một quy tắc chung trên máy chủ chỉ đơn giản là chặn các yêu cầu này. Trừ khi bạn có quyền truy cập vào cấu hình máy chủ dưới một hình thức nào đó, nếu không bạn sẽ không thể làm bất cứ điều gì để tác động đến điều này.

Nhưng nó đã trả về 404. Và 404 là 404, vì vậy nó sẽ không tạo ra bất kỳ sự khác biệt nào đối với bot. Và thực người dùng không bao giờ nên thực hiện các yêu cầu như vậy.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.