1 out of 1 members found this post helpful.
แกะข้อมูลจาก header ของ email
วันนี้ผมจะเขียนเกี่ยวกับการอ่าน email header ซึ่งจะมีประโยชน์ในหลายๆ เรื่อง ยกตัวอย่างเช่น การตรวจสอบ ip ของผู้ส่ง และการตรวจสอบ server ที่ส่ง email นั้นๆ เป็นต้น โดนสถานการณ์ที่ผมสมมติขึ้นเป็นตามรูปนะครับ
sendmail.jpg
โดย hotmailsample.png ส่ง email ไปให้ citecsample.png ซึ่งการส่งก็เป็นไปตามภาพครับ email จะไปเข้า server ของ hotmail ก่อน แล้วจึงวิ่งไปที่ server ของ citec ซึ่งก็คือ memy.name แล้วก็วิ่งไปที่ผู้รับ ทีนี้ถ้าเราเปิดดู header ของ email ที่ฝั่งผู้รับก็จะเห็นข้อมูลดังภาพ

field ที่น่าสนใจก็จะมี ดังนี้ครับ
- Date
- From
- To
- Subject
- Received
- X-Originating-IP
ซึ่งส่วนใหญ่ก็พอจะเดาได้อยู่แล้วว่าอะไรเป็นอะไร
Date: จะบอกวันเวลาที่ email ฉบับนี้ถูกกด send ตามเวลาของเครื่องที่ส่ง
From: จะบอก email address ของผู้ส่ง
To: จะบอก email address ของผู้รับ
Subject: จะบอกหัวข้อของ email
X-Originating: จะบอก ip ของเครื่องที่ส่ง email ฉบับนั้นๆ ออกมา แต่บางครั้งอาจไม่มีข้อมูลนี้ใน header ครับ
Received: ข้อมูลส่วนนี้จะบอก sequence การรับส่ง email ระหว่างจุด จากภาพตัวอย่างจะเห็นว่ามี Received ถึง 3 ที่ด้วยกัน คือในกรอบสีเขียว เหลือง และม่วง เวลาอ่านให้อ่านจากล่างขึ้นบนนะครับ
มาขยายส่วนของ Received field ซะหน่อย สำหรับ field จะมีรูปแบบดังนี้ครับ from <sender> by <receiver> with <software> โดย <sender> จะบอก domain name หรือ ip ของผู้ส่ง, <receiver> จะบอก domain name หรือ ip ของ ผู้รับ และ <software> จะบอก software ที่ผู้รับใช้ (ผู้ส่งกับผู้รับในที่นี้หมายถึงผู้ส่งกับผู้รับระหว่างจุดนะครับ)
มาดูตัวอย่างกันดีกว่า (เวลาอ่านให้อ่านจากล่างขึ้นบนนะครับ)
- ในกรอบสีม่วง ::: ผู้ส่งคือ ip 124.169.xxx.xxx [10.0.0.2] ไปที่ผู้รับคือ server BLU0-SMTP64.blu0.hotmail.com โดยมี Microsoft SMTPSVC เป็น software ที่รับข้อมูลเข้ามา
- ในกรอบสีเหลือง ::: ผู้ส่งคือ server BLU0-SMTP64 (สังเกตว่าเป็น server ที่เคยเป็นผู้รับในกรอบสีม่วงนะครับ) ไปที่ผู้รับคือ server blu0-omc2-s38.blu0.hotmail.com โดยมี Microsoft SMTPSVC เป็น software ที่รับข้อมูลเข้ามา
- ในกรอบสีเขียว ::: ผู้ส่งคือ server blu0-omc2-s38.blu0.hotmail.com (สังเกตว่าเป็น server ที่เคยเป็นผู้รับในกรอบสีเหลืองนะครับ) ไปที่ผู้รับคือ server atmail2.memy.name โดยมี esmtp เป็น software ที่รับข้อมูลเข้ามา
ปล. สำหรับในกรอบสีม่วง ที่เห็นว่ามี ip อยู่สอง ip คือ 124.169.xxx.xxx กับ 10.0.0.2 นั่นหมายถึง ip public กับ ip private ครับ เวลาดูให้ดูที่ ip public ซึ่งเป็น ip ที่ ISP แจกจ่ายให้ผู้ใช้แต่ละคน สำหรับ ip private นั้น เป็น ip ที่มีการแจกจ่ายกันเองในวง network ของผู้ใช้งานครับ ขอไม่ลงรายละเอียด ไม่งั้นได้ต่อกันอีกยาวครับ
ซึ่งจะเห็นว่า ถ้าเราอ่าน field Received จากล่างขึ้นบน เราจะสามารถ track กลับไปหาผู้ส่งต้นทางได้ และทำให้เรารู้ด้วยว่า email นั้นๆ ผ่าน server ไหนมาบ้างครับ
สำหรับในกรอบมีแดงจะเป็นส่วน body หรือก็คือเนื้อหาของ email นั้นๆ ครับ