Điểm:0

HTTPS POST-Request không kết nối được với Content-Length

lá cờ iq

Một ứng dụng PHP đăng dữ liệu XML với curl; không có gì lạ mắt, đầu ra trông như thế nào (c/p, nhưng số nhận dạng và mật khẩu đã thay đổi):

Máy chủ: nước ngoài.host.example
Ủy quyền: Basic dGVzdDpnZWhlaW0=
Tác nhân người dùng: ourhost HTTP-connector/1.0
Chấp nhận: */*
Người giới thiệu: https://our.host.example/
Loại nội dung: văn bản/xml
Độ dài nội dung: 9218
Kỳ vọng: 100-tiếp tục

[9218 byte dữ liệu XML]

Điều này được thực hiện trên một vài máy chủ nguồn S1...Sn và được đăng lên một vài máy chủ đích T1...Tn. Một tuần trước máy chủ S1 đã được nâng cấp từ Debian/buster lên Debian/bullseye; phần mềm PHP tạo cũng đã được nâng cấp, nhưng tôi không biết về bất kỳ thay đổi nào trong lĩnh vực này (và các yêu cầu được tạo trông giống hệt nhau). Chính xác là vì bản nâng cấp này, hai máy chủ đích (không liên quan) T1 và T2 từ chối yêu cầu của chúng tôi với mã phản hồi 400. Tất cả các máy chủ đích khác đều hoạt động tốt và T1/T2 hoạt động tốt, nếu được kết nối từ các máy chủ nguồn khác (với cấp độ sửa đổi cũ).

Hệ quả: Lỗi là ở phía chúng ta. Nhưng ở đâu?

Lưu ý bên lề: bỏ tiêu đề Mong đợi không thay đổi bất cứ điều gì.

Thông tin bổ sung: Trong khi T1 chỉ phản hồi với mã phản hồi 400, thì T2 lịch sự và bao gồm một thông báo trạng thái như:

[our.ip.address]:60760 có yêu cầu chưa hoàn thành: Độ dài ước tính là 3994 byte, đã nhận được 3899 byte

Thật không may, gợi ý này không đủ để khai sáng cho tôi (và những người liên hệ ở đó cũng không có đủ kiến ​​thức để làm điều đó), nhưng nó đã dẫn tôi đến điều sau

Giải pháp thay thế: Nếu tôi chặn tiêu đề Độ dài nội dung, quá trình truyền sẽ hoạt động

Điều này tốt hơn là không có gì, nhưng không thỏa mãn - tôi muốn vấn đề được giải quyết; vì vậy tôi đã kiểm tra hai lần và ba lần số trong tiêu đề Độ dài nội dung (vì đây là nguồn lỗi duy nhất mà tôi có thể nghĩ ra cho đến nay); nó có vẻ ổn, và phép tính chính xác tương tự được sử dụng trên các máy chủ S2...Sn vẫn đang hoạt động. Và: độ dài nội dung cộng với tiêu đề ước tính (tất nhiên điều này sẽ khác một chút do máy chủ, ủy quyền và người giới thiệu khác) không phải là độ dài ước tính cũng như độ dài nhận được, mà nằm ở đâu đó ở giữa. Các phản hồi cho đến nay đã cung cấp các con số sau:

Ước lượng Nhận Sự khác biệt
4322 4228 94
3972 3877 95
3994 3899 95
6928 6768 160

Thật không may, điều này không phải là hằng số và cũng không rung lên bất kỳ hồi chuông nào.

Tôi đặt một vài thẻ vì Apache (2.4.52), OpenSSL (1.1.1k), curl (7.74.0) và PHP (7.4.25) đã được nâng cấp cùng với máy chủ mặc dù tôi không thấy bất kỳ ảnh hưởng nào có thể xảy ra. Nhưng tôi không có bất kỳ ý tưởng nào khác, vì vậy tôi không muốn loại trừ điều này.

Bất kỳ ý tưởng được chào đón.

lá cờ jp
Sử dụng `tcpdump` hoặc proxy để nắm bắt yêu cầu gửi đi và xác nhận rằng bạn có đúng `Độ dài nội dung` trên dây.
lá cờ iq
Điều này khiến tôi phát điên: Với mitmproxy, tôi có thể chặn các cuộc gọi đến một trong các trang web của chúng tôi - mọi thứ đều ổn. Nếu tôi cố gắng liên hệ với T1 hoặc T2, yêu cầu __hangs__ trong khi mitmproxy thực hiện bắt tay với máy chủ từ xa; Tôi không thấy bất kỳ tiêu đề nào cả. Ngay sau khi tôi bỏ Độ dài nội dung, mọi thứ sẽ hoạt động như mong đợi.
lá cờ iq
Nhưng bây giờ tôi đã xem xét kho lưu trữ: tiêu đề Độ dài nội dung đã được đặt kể từ nguồn gốc của phần mềm vào năm 2006. Rất có thể một cái gì đó đã thay đổi trong nền (cURL) từ lâu, như thể tôi chỉ cần bỏ qua nó, cURL sẽ đặt tiêu đề chính xác nào. Vì vậy, mặc dù tôi vẫn không hiểu chuyện gì đang xảy ra ở đây, nhưng tôi sẽ dừng các cuộc điều tra thêm vào thời điểm nà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.