ฉันจะบันทึกข้อมูลเกี่ยวกับคุกกี้ได้อย่างไร


14

ฉันต้องการเพิ่มข้อมูลคุกกี้ในบันทึกการเข้าถึง Apache ของฉันเช่น: อีเมล, ชื่อผู้ใช้ (คุกกี้ถูกสร้างขึ้นโดยไฟล์ php ไม่ใช่ Apache)

ฉันสามารถเพิ่มบางสิ่งในlog.confไฟล์ที่คล้ายกับ: \"%{cookieName}i\"ถึง

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

หากไม่ได้ผลฉันจะใช้บันทึกคุกกี้และรวมกับบันทึกการเข้าถึงและอย่างไร

คำตอบ:


22

มีสามวิธีในการรับคุกกี้ในบันทึก Apache:

%{cookiename}C
สิ่งนี้จะตรงกับคุกกี้ที่ระบุชื่อที่ส่งในคำขอโดยเบราว์เซอร์ แต่ไม่ใช่คุกกี้อื่น ๆ

%{Cookie}i
สิ่งนี้จะบันทึกส่วนหัวของคุกกี้ทั้งหมด: ส่งไปยังเซิร์ฟเวอร์ในคำขอ ซึ่งอาจค่อนข้างกว้างขวางหากมีการตั้งค่าคุกกี้จำนวนมากหรือหากคุกกี้ใดมีข้อมูลจำนวนมาก

%{Set-Cookie}o
สิ่งนี้จะตรงกับส่วนหัว Set-Cookie ทั้งหมดที่ส่งโดยเซิร์ฟเวอร์ในการตอบกลับ

โปรดทราบว่า "cookiename" ควรถูกแทนที่ด้วยชื่อของคุกกี้ที่คุณต้องการเข้าสู่ระบบในขณะที่อีกสองวิธีควรอยู่ในคำสั่ง CustomLog ของคุณตรงตามที่เขียนไว้ ทั้งสองนี้เป็นส่วนหัวที่ตรงกันในคำขอและการตอบสนองตามลำดับ สามารถใช้เพื่อจับคู่ส่วนหัวใด ๆ ไม่ใช่เฉพาะส่วนหัวของคุกกี้


8

ลองสิ่งนี้ในการกำหนดค่า vhost ของคุณ:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"" with_cookies
CustomLog /var/log/apache2/my-access.log with_cookies

ทำงานให้ฉัน ผลลัพธ์ใน my-access.log:

83.0.11.22 - - [02/Aug/2009:12:31:30 +0200] "GET /ct/ HTTP/1.1" 200 - "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1" "c1=1; c2=2; PHPSESSID=6c4513f22852a235b8988da822f89d04"

1
มันสุดยอดสำหรับฉัน คุณสามารถเพิ่มชื่อคุกกี้ที่ถูกต้องเป็น LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {ผู้อ้างอิง} i \ "\"% {User-Agent} i \ "\" % {cookieName} C \ "" with_cookies
Sunil Bhoi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.