วิธีการตรวจสอบใน PHP ถ้ามันทำงานบน Apache, Nginx หรือเว็บเซิร์ฟเวอร์อื่น ๆ ? [ปิด]


12

ก่อนอื่นฉันรู้ตัวแปรนี้: _SERVER["SERVER_SOFTWARE"]

ในแอปพลิเคชันของฉันฉันต้องการตรวจสอบจากสคริปต์ PHP ที่เว็บเซิร์ฟเวอร์ทำงานอยู่ โดยทั่วไปจะเป็นปลั๊กอิน wordpress ซึ่งจะช่วยบล็อกเกอร์ปรับแต่งการกำหนดค่าบางอย่าง

ฉันได้สร้างกระบวนการแยกต่างหากสำหรับ Apache & Nginx และคิดเกี่ยวกับการปล่อยโค้ดเป็น 2 wordpress plugin ที่ต่างกัน

จากนั้นฉันก็อยากรู้ว่ามีวิธีการแบบ FULLPROOF ใน PHP เพื่อตรวจจับผู้ให้บริการเว็บอย่างไร้ที่ติหรือไม่

โปรดพิจารณาทุกกรณี :: Apache, Nginx, Apache + Nginx, PHP เป็นโมดูล Apache, PHP โดยใช้ fastcgi, php-fpm, lighttpd, IIS, ฯลฯ

มันสำคัญมากสำหรับแอพพลิเคชั่นของฉันในการตรวจจับคอมโบและพร็อกซี่ที่มีอยู่

ขอบคุณ

-Rahul

คำตอบ:


10

คำตอบสั้น ๆ ก็คือมันเป็นไปไม่ได้ที่จะระบุสิ่งที่ผู้ใช้เว็บเซิร์ฟเวอร์กำหนด ค่าที่ใกล้เคียงที่สุดที่คุณจะได้รับคือค่า $ _SERVER ["SERVER_SOFTWARE"]

เป็นไปได้ที่จะได้รับความคิดที่ดีพอสมควรว่าซอฟต์แวร์ใดทำงานอยู่ที่ [URL ที่เฉพาะเจาะจงโดยการพิมพ์ลายนิ้วมือของแอปพลิเคชัน แต่มีความซับซ้อนมาก - และจะแจ้งให้คุณทราบว่ามีอะไรยุติการเชื่อมต่อ HTTP -

สิ่งที่คุณเห็นใน phpinfo () จะไม่แสดงเว็บเซิร์ฟเวอร์สำหรับ [fast] cgi และจะแสดงเฉพาะสิ่งที่ผู้ดูแลระบบเลือกที่จะให้บริการในระบบอื่น ๆ

มันสำคัญมากสำหรับแอพพลิเคชั่นของฉันในการตรวจจับคอมโบและพร็อกซี่ที่มีอยู่

ฉันไม่รู้ว่าคุณหมายถึง 'คอมโบ' สำหรับผู้รับมอบฉันทะ .... ไม่มีทางที่จะบอกได้

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

ค.


โดย cambo ฉันหมายถึง - ผู้ใช้บางคนเลือก Nginx เป็นเว็บเซิร์ฟเวอร์และใช้ Apache เพื่อเรียกใช้ PHP กรณีหนึ่งคือพวกเขาต้องการเรียกใช้ cpanel และ nginx ด้วยกัน ตอนนี้ในแอปพลิเคชันของฉันในส่วนหนึ่งฉันต้องการแนะนำผู้ใช้สำหรับกฎการเขียนซ้ำที่ซับซ้อนโดยอ้างอิงจากเว็บเซิร์ฟเวอร์ ในกรณีข้างต้น apache + nginx เว็บเซิร์ฟเวอร์สคริปต์ PHP ของฉันจะตรวจจับอะไร I
rahul286

0

บางคนบนไซต์ PHP Manual โพสต์วิธีรับ phpinfo()ตัวแปรในอาเรย์มีข้อมูลมากมาย แต่Systemที่ php ยังทำงานอยู่บางทีคุณอาจใช้มันได้ ดูความคิดเห็น

นอกจากนี้การตรวจสอบพร็อกซี่นั้นไม่ใช่เรื่องง่ายคุณสามารถใช้ส่วนหัว http (เช่นVia) แต่มีหลายวิธีที่จะผิดพลาดได้


ขอบคุณสำหรับคำตอบและความช่วยเหลือ ฉันรู้ว่าไม่สามารถเชื่อถือได้ผ่านส่วนหัวและนั่นคือเหตุผลที่ฉันต้องการความช่วยเหลือ
rahul286
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.