Điểm:0

Nhiều tiêu đề ID phiên được gửi bởi Apache HTTPD phục vụ PHP

lá cờ zw

Vấn đề

Tôi nhận được nhiều tiêu đề HTTP bằng nhau trong các phản hồi của ứng dụng web. Đôi khi, đó là hàng tá bản sao tùy thuộc vào tập lệnh được gọi.

Cài đặt

Đó là một ứng dụng dựa trên PHP lớn và rất cũ. Nó được phân phối bằng Apache HTTPD 2.4 (Debian) bằng cách sử dụng php7_module mô-đun.

Ứng dụng này có một số mã thư viện xử lý thông tin phiên. Trong mã này, nó kết thúc việc xử lý với phiên_bắt đầu();session_write_close();.

Nỗ lực của tôi

Tìm kiếm

Tôi đã đọc về vấn đề này và điều tôi học được là quá trình gói được thực hiện để bỏ chặn đối tượng phiên, để các phần khác của ứng dụng cũng có thể đọc và ghi vào đối tượng đó. Đây dường như là một kỹ thuật trong nhiều ứng dụng.

Tôi cũng đã đọc về một lỗi trong PHP gây ra hành vi chính xác này. Trên thực tế, đã có một số báo cáo lỗi trong nhiều năm mà tôi đã tìm thấy. Một báo cáo ví dụ: https://bugs.php.net/bug.php?id=38104

Tất cả các báo cáo được đóng lại và giải quyết. Nó được cho là không còn là một lỗi thực sự trong PHP nữa. Tôi cũng đọc được rằng nó dường như chỉ xảy ra khi sử dụng mô-đun Apache HTTPD PHP chứ không phải khi gọi trực tiếp PHP.

PHP

Tôi đã thử một giải pháp có lập trình trong đó tôi chỉ lặp lại các tiêu đề ở cuối tập lệnh "xem" và đảm bảo rằng chỉ có một đặt cookie tiêu đề. Tuy nhiên, đây không phải là giải pháp thực sự vì có hàng trăm lượt xem và nó sẽ phải xảy ra trên từng lượt xem hiện tại và trong tương lai.

ghi chú tiêu đề HTTPD

Tôi đã cố gắng tận dụng mod_headers Ghi chú lệnh từ chỉ thị tiêu đề, nhưng tôi chưa thể làm cho nó hoạt động được.

Ghi chú tiêu đề Set-Cookie đã lưu_cookie
Bỏ đặt tiêu đề Set-Cookie
Bộ tiêu đề Set-Cookie "%{saved_cookie}n"

Tôi thực sự không tìm thấy bất kỳ ví dụ hay nào về cách sử dụng nó. Tôi cũng không biết liệu các ghi chú có thể được sử dụng theo cách này hay không.

Câu hỏi

Có ai biết giải pháp về cách khắc phục điều này có thể bằng cấu hình của HTTPD hoặc bất kỳ thứ gì có thể được thực hiện một lần không.

SvenTUM avatar
lá cờ zw
Tôi đã cấu trúc lại mã và thêm phần ghi chú tiêu đề HTTPD, đây là một lần nữa không thành công.

Đă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.