it-swarm-vi.com

Điều gì có thể khiến dữ liệu phiên Joomla bị mất liên tục?

Câu hỏi của tôi được lấy cảm hứng từ một vấn đề cũ mà tôi không nghĩ rằng mình đã giải quyết đúng đắn. Tôi đã lưu trữ thông tin mảng trong một phiên Joomla mà tôi đã truy cập một thời gian ngắn sau đó. Tôi thấy rằng không liên tục biến Joomla mà tôi đã đặt bị thiếu.

Để quan tâm, bạn có thể thấy vấn đề ban đầu của tôi tại https://stackoverflow.com/questions/13052495/how-to-prevent-race-conditions-when-wr-reading-j Joomla-rev-vasbled-fr = =

Tôi sẽ không hỏi cùng một câu hỏi, thay vào đó tôi hy vọng sẽ có được câu trả lời cho các câu hỏi liên quan sau đây.

  1. Điều gì có thể khiến dữ liệu phiên Joomla bị mất liên tục?
  2. Làm thế nào tôi có thể khắc phục sự cố mất các biến phiên Joomla?
1
TryHarder

Dựa trên những gì tôi đã thấy, có một số cách để dữ liệu phiên bị "mất tích".

  1. Cách đầu tiên là chính xác những gì mọi người đã đề cập hoặc đề xuất. Đây là nơi bạn đạt đến ranh giới hẹn giờ phiên. Khi đạt đến bộ đếm thời gian phiên, phiên sẽ bị xóa khỏi bộ nhớ.

  2. Khi bạn đăng xuất, dữ liệu phiên của bạn sẽ bị xóa. Nó phụ thuộc vào chức năng đăng xuất nào được gọi và phiên bản nào của Joomla. Tôi đã thấy một số trường hợp chỉ xóa phần Phiên Joomla. Tôi cũng đã thấy các trường hợp trong đó toàn bộ $ _SESSION toàn cầu bị xóa.

  3. Tôi cũng đã thấy một số trường hợp cố gắng lưu trữ dữ liệu phiên thông qua API Joomla không lưu trữ bất cứ thứ gì hoặc nó lưu trữ nó ở một nơi bạn không mong đợi. Sau khi bạn đặt biến phiên, kết xuất phiên để đảm bảo nó được đặt và nơi bạn nghĩ nó là.

  4. Điều này là phổ biến hơn cho dữ liệu phiên bị thiếu ngẫu nhiên. Đây là khi bạn đạt ranh giới www/non-www hoặc http/https. Apache (máy chủ web chính cho các trang web Joomla) đôi khi bị lẫn lộn khi cùng một trình duyệt vượt qua ranh giới www/non-www hoặc http/https. Một số thiết lập xử lý nó tốt, một số khác thì không nhưng nó khá phổ biến. Đây là phần thú vị, thậm chí không phải là liên kết chính mà họ đang liên kết với cây cầu đó, nó có thể là một tệp CSS, tệp JS, hình ảnh, v.v. trên cùng một trang nằm trên www/non- cầu www hoặc http/https có thể gây ra sự cố. Điều đó rất hiếm trong những ngày này nhưng tôi đã thấy nó trên nhiều trang web.

Đây là những cách duy nhất tôi có thể nghĩ ra khỏi con dơi có thể thể hiện hành vi này.

2
Donald Champion

Một khả năng khác là dữ liệu phiên bị cắt ngắn do các ký tự ngôn ngữ. Nếu lưu trữ trong db, hãy kiểm tra dữ liệu phiên hoàn tất (được đính kèm đúng {}).

Ví dụ: nếu phiên cố gắng lưu trữ Montréal, nó có thể bị cắt cụt thành Montr. Mọi thứ sau khi Montr bị mất và dữ liệu phiên có thể được cập nhật lâu hơn.

1
mwf