I'm parsing apache logs for a client and notice that phpsessid appears to be shared between different users on same ip. These are shopping cart transactions that are legitimate purchases from legitimate customers hitting a thank you page. I thought it might be a proxy issue (may still be) but it is a TWC ip address and doesn't seem to be a proxy. There are other ips with which this is also happening but this is by far the most prevalent. It's impossible that one user could make these purchases within seconds of each other so the phpsessid is somehow being shared? The only thing that seems logical that could be happening here is that a proxy is sharing them or the server is not differentiating between the users properly.
xx.xx.xx.xx - - [13/Mar/2015:16:38:13 -0500] 0ad491d77a8fdef52f885dc4d9ca10a8 "GET /sc-thank-you/?orderId=287729&contactId=1310551 HTTP/1.1"
...
xx.xx.xx.xx - - [13/Mar/2015:16:43:14 -0500] 0ad491d77a8fdef52f885dc4d9ca10a8 "GET /sc-thank-you/?orderId=287731&contactId=582513 HTTP/1.1"
...
xx.xx.xx.xx - - [13/Mar/2015:16:47:51 -0500] 0ad491d77a8fdef52f885dc4d9ca10a8 "GET /sc-thank-you/?orderId=287733&contactId=1310571 HTTP/1.1"
Researching suggests that using a header like this might be the answer if it is a proxy issue:
Cache-Control: private, no-cache, must-revalidate, no-store, max-age=0
This is a wordpress site and I've grepped the pages to find that the cache control is mostly no-cache with no Private headers but there are many Public headers also. It's a large e-commerce site and I don't want to suggest changes that won't fix the issue. Has anyone ran into this type thing? I'm at a standstill until this is resolved. I need to be able to rely on the phpsessid being unique to a particular user to be able to generate a tracking report from the parsed logs.
Thanks
Edit: These users are from Joshua Tree, CA; Menomonee, WI; and Calagary, AB (Canada).
Edit: The only thing that makes sense to me is that a request has to come in to the server with that phpsessid and the server honors it because it is a valid id and everything else, ip, user-agent, etc. is all the same. I mean, if a request comes in without a phpsessid then the server would start a new session. The question is where does the second, and subsequent users, obtain that phpsessid? This is not a hijacked session as the purchases are legit so something in the middle is caching that id?