Score:0

เหตุใดโฮสต์จึงปิดการใช้งาน fpassthru () ของ PHP

ธง ru

ฉันกำลังทำงานกับแอปพลิเคชัน PHP ที่ใช้ fpassthru ฟังก์ชันในตัว ซึ่งอ่านเนื้อหาจากสตรีมหรือตัวชี้ไฟล์ และส่งออกไปยังเอาต์พุตบัฟเฟอร์ มันคล้ายกันมากกับ อ่านไฟล์ ฟังก์ชัน แต่อนุญาตให้ฉันเริ่มเอาต์พุตที่ออฟเซ็ตเฉพาะ

ผู้ให้บริการโฮสติ้งส่วนใหญ่ที่ฉันทดสอบผลิตภัณฑ์ด้วย ทำงานได้ดี และรวมถึงสภาพแวดล้อมโฮสติ้งแบบหลายผู้เช่าที่ใช้ร่วมกัน อย่างไรก็ตาม ฉันพบบางส่วนที่มี fpassthru() ฟังก์ชัน "ปิดใช้งานด้วยเหตุผลด้านความปลอดภัย" ฉันใช้เวลาหลายชั่วโมงในการค้นคว้าว่าทำไมบางคนถึงปิดการใช้งาน fpassthru ฟังก์ชั่น แต่ไม่ใช่ฟังก์ชั่นเช่น เปิด, กลัว, file_get_contentsเช่นเดียวกับ อ่านไฟล์แต่ฉันไม่พบสิ่งที่เป็นประโยชน์จริงๆ

นี่อาจฟังดูงี่เง่า แต่การเดาที่ใกล้เคียงที่สุดของฉันก็คือโฮสต์เหล่านี้ถูกปิดใช้งาน fpassthru เข้าใจผิดว่าเป็น ผ่านซึ่งรับประกันการปิดใช้งานโดยเฉพาะอย่างยิ่งในสภาพแวดล้อมที่ใช้ร่วมกัน บอกเลยว่าของจริง ผ่าน ฟังก์ชั่น (พร้อมกับ ผู้บริหาร และคนอื่นๆ ในครอบครัว) ก็ถูกปิดใช้งานในโฮสต์เหล่านี้เช่นกัน

ฉันพยายามติดต่อโฮสต์เหล่านี้และถามพวกเขาว่าทำไม

ฉันไม่สามารถทำยอดขายที่ Flywheel ได้ พวกเขาบอกว่าไม่สามารถตอบคำถามของฉันได้ และมีเพียงฝ่ายสนับสนุนเท่านั้นที่ทำได้ และเพื่อที่จะติดต่อฝ่ายสนับสนุน ฉันต้องกลายเป็นลูกค้า คลาสสิก

RunCloud ดูเหมือนจะมีความหวังมากกว่าในตอนแรก ฉันได้ผ่านเป็น "วิศวกรระบบระดับ 3" และต้องใช้เวลาอีกสองสามวันกว่าจะได้เป็น "Sr. Systems Engineneer" ซึ่งฉันได้รับข้อความต่อไปนี้:

เป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับ PHP บน RunCloud และเป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับเรา

ฉันขอให้พวกเขาอธิบายเพิ่มเติม แต่ไม่ได้รับการตอบกลับมาระยะหนึ่งแล้ว ดังนั้นฉันจึงสิ้นหวัง

แค่ชี้แจง ฉันไม่ได้มองหาวิธีแก้ไข fpassthru(). ฉันกำลังมองหาเหตุผลว่าทำไมบางครั้งจึงแสดงรายการข้างฟังก์ชัน "อันตราย" เช่น ผู้บริหาร (), ระบบ(), พาสทรู(), pcntl_fork() และอื่น ๆ ในขณะที่มี อ่านไฟล์ (), file_get_contents()ฯลฯ ทำงานได้ดี

หากคุณมีข้อมูลเชิงลึกใด ๆ โปรดแบ่งปัน!

jp flag
คุณอาจต้องการถามสิ่งนี้ใน https://security.stackexchange.com/
cn flag
จะเกิดอะไรขึ้นหากคุณขอออฟเซ็ตนอกช่วงไฟล์ มันอ่านหน่วยความจำโดยพลการหรือไม่?
ru flag
@ shearn89 คุณไม่สามารถระบุออฟเซ็ตอย่างชัดเจนใน fpassthru() อ่านจากตำแหน่งที่ตัวชี้ปัจจุบันไปยัง EOF ในการชดเชยคุณจะต้องใช้ fread() ของ fseek()
Score:1
ธง cn
Bob

อย่าดูถูกพลังของโปรแกรมเมอร์และผู้ดูแลระบบลัทธิสินค้า

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

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา