ก่อนอื่น มาดูในแง่กว้างๆ ว่า user-agent ของอินเทอร์เน็ตเบราว์เซอร์นี้คืออะไร และใช้เพื่ออะไร
เนื้อหา
User Agent (หรือ User-Agent) คืออะไร?
อินเทอร์เน็ตเบราว์เซอร์ทั้งหมด (Internet Explorer, Safari, Opera, Firefox, Chrome ฯลฯ) มีซอฟต์แวร์ตัวแทนที่โต้ตอบกับเว็บไซต์ที่คุณเยี่ยมชมที่ระดับเซิร์ฟเวอร์โฮสต์ ซอฟต์แวร์นี้ทำให้การเชื่อมต่ออินเทอร์เน็ตกับเว็บไซต์ ทำความเข้าใจ ตรวจสอบ และจะแสดงเนื้อหาของหน้าที่เข้าถึง กล่าวโดยย่อคือ ช่วยให้มั่นใจได้ถึงการโต้ตอบระหว่างผู้ใช้และเซิร์ฟเวอร์โฮสต์ที่ให้บริการผู้ใช้ตามหน้าเว็บที่ร้องขอโดยการเข้าถึง URL เฉพาะบนโปรโตคอล HTTP / HTTPS
User Agent ประกอบด้วยข้อมูลที่เกี่ยวข้องกับซอฟต์แวร์ที่ผู้ใช้ใช้ ระบบปฏิบัติการ เวอร์ชันของแพ็คเกจซอฟต์แวร์เบราว์เซอร์ในส่วนหัวที่ส่งไปยังเซิร์ฟเวอร์ที่เข้าถึง ตัวอย่างเช่น user-agent สำหรับ Google Chrome จะกลับไปยังเซิร์ฟเวอร์ข้อมูลเกี่ยวกับเวอร์ชันของ Google Chrome ที่ใช้และระบบปฏิบัติการของผู้ใช้
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3163.100 Safari/537.36
ส่วนหัวของ user-agent ด้านบนหมายถึงเวอร์ชันของ กูเกิล โครม 70 บนคอมพิวเตอร์ด้วย โปรเซสเซอร์เอเอ็มดี- สถาปัตยกรรม 64 บิต พร้อมระบบปฏิบัติการ Windows 10-
คุณคงจะถามตัวเองว่า เหตุใด Mozilla จึงปรากฏเป็นตัวแทนผู้ใช้สำหรับ Chrome- นี่เป็นกลอุบายที่ Google (และโดย Microsoft ใน IE) ใช้เพื่ออำนวยความสะดวกในการเข้าถึงผู้ใช้ Chrome ไปยังไซต์ทั้งหมดที่เข้ากันได้กับ Mozilla และ Safari AppleWebKit คือกลไกการเรนเดอร์เนื้อหา
เว็บมาสเตอร์หรือผู้ดูแลเว็บเซิร์ฟเวอร์สามารถทำได้ บล็อกการเข้าถึงตัวแทนผู้ใช้บางราย ที่เว็บไซต์ที่โฮสต์ โดยส่วนใหญ่แล้ว ข้อจำกัดนี้จะถูกบังคับใช้ เว็บโรบอต -เว็บบอท) ที่เข้าถึงหน้าเว็บของเว็บไซต์อย่างวุ่นวายหรือมากเกินไป โชคดีที่บอทเหล่านี้มีตัวแทนผู้ใช้เฉพาะและสามารถตรวจพบได้ง่ายมากในบันทึกของเว็บเซิร์ฟเวอร์
วิธีบล็อกการเข้าถึงของ user-agent ไปยังเว็บเซิร์ฟเวอร์ด้วย NGINX
ลองใช้สถานการณ์ที่เราไม่ต้องการอนุญาตให้ผู้ใช้ที่มีระบบปฏิบัติการ Windows XP และอินเทอร์เน็ตเบราว์เซอร์ Mozilla Firefox 5.0 เข้าถึงเว็บไซต์ได้อีกต่อไป
เราเพิ่มโค้ดด้านล่างลงในไฟล์การกำหนดค่า nginx ไปที่ “เซิร์ฟเวอร์” ปิดกั้น:
if ($http_user_agent = "Mozilla/5.0 (Windows NT 5.1; rv:52.0) Gecko/20100101 Firefox/52.0"){
return 403;
}
บันทึกไฟล์ nginx.conf หรือไฟล์เฉพาะของเว็บไซต์ หากคุณใช้การกำหนดค่าแบบกำหนดเอง (มีไซต์ Gen) แล้ว เริ่มบริการ NGINX ใหม่-
ผู้ใช้ทั้งหมดที่มี Firefox 5.0 (รวมถึงทุกเวอร์ชันสูงถึง 5.9) บน Windows XP จะถูกเปลี่ยนเส้นทางไปที่ ข้อผิดพลาด 403 (ต้องห้าม).
ฉันไม่ได้เลือกตัวอย่างนี้โดยบังเอิญ ตั้งแต่ Firefox 52.9.0 เป็นต้นไป Mozilla ได้หยุดการสนับสนุนสำหรับผู้ใช้ Windows XP และ Windows Vista ระบบปฏิบัติการที่ Microsoft หยุดการสนับสนุนในปี 2014 ตามลำดับในปี 2017 สำหรับ Windows Vista