เหตุใด WordPress จึงต้องใช้คีย์ส่วนตัวของฉันเพื่ออัปเดต


13

การกำหนดค่า WordPress เพื่ออัปเดตภายในแอปพลิเคชัน (เช่น WordPress) เหมาะสำหรับฉันเพราะความสะดวกสบาย กระนั้นก็ตามฉันมีปัญหาตามข้อกำหนด เขตข้อมูลที่ร้องขอที่ปรากฏขึ้นหลังจากติดตั้ง ssh2 สำหรับ phpไม่เพียงถามรหัสสาธารณะของฉันเท่านั้น แต่ยังมีรหัสส่วนตัวของฉันด้วย ฉันคิดว่าในที่สุดจะต้องใช้รหัสสาธารณะเท่านั้น

WordPress ให้คีย์ส่วนตัวของฉันกับเซิร์ฟเวอร์จริงหรือไม่เพื่อให้เซิร์ฟเวอร์สามารถอัปโหลดซอฟต์แวร์ที่ถูกต้องไปยังเซิร์ฟเวอร์ของฉันได้ ฉันคุ้นเคยกับการทำงานของคีย์ส่วนตัว / สาธารณะของ SSH ซึ่งเป็นสาเหตุที่ทำให้ฉันสับสนว่าทำไม WordPress ถึงต้องการสิ่งนี้ หากมีอะไรฉันคิดว่ากลไกสำหรับการอัพเดตไม่จำเป็นต้องใช้โปรโตคอลนี้ด้วยซ้ำ มันจะใช้ http หรือ ftp ไปยังเซิร์ฟเวอร์แพ็คเกจแล้วดาวน์โหลด / ติดตั้ง / เปิดใช้งานจากที่นั่น

ทำไม WordPress ต้องใช้คีย์ ssh ของฉัน มีความกังวลด้านความปลอดภัยที่นี่หรือไม่?

คำตอบ:


11

โดยพื้นฐานแล้ว WordPress จำเป็นต้องเชื่อมต่อกลับไปยังเซิร์ฟเวอร์ที่ใช้งานจริง

มีหลายวิธีที่เป็นไปได้ WordPress สามารถใช้เพื่อเขียนไฟล์และทำให้ "เขียนทับ" ตัวเองในระหว่างการอัพเกรด จากมุมมองด้านความปลอดภัยส่วนที่สำคัญของกระบวนการนี้คือไฟล์ใหม่จะต้องมีความเป็นเจ้าของเช่นเดียวกับไฟล์เก่า

ดังนั้น WordPress ทำการทดสอบก่อนโดยการเขียนไฟล์โดยตรงและตรวจสอบว่าใครเป็นเจ้าของผล หากเจ้าของตรงกับไฟล์ PHP ก็จะรู้ว่าสามารถเขียนไฟล์ด้วยความเป็นเจ้าของที่ถูกต้อง (ซึ่งหมายความว่ากระบวนการนี้เป็น "setuid" ให้กับเจ้าของไฟล์)

หากไฟล์ผลลัพธ์นั้นเป็นของ ID ผู้ใช้อื่น (ซึ่งน่าจะเป็นไปได้ว่า Apache / PHP กำลังทำงานในฐานะผู้ใช้อื่นเช่นผู้ใช้ "www" หรือ "apache") ดังนั้น WordPress ต้องใช้วิธีการอื่นในการสร้างไฟล์ด้วย เจ้าของที่ถูกต้อง

วิธีการหนึ่งคือ FTP อย่างง่าย หากทำการเชื่อมต่อ FTP กลับไปยังเซิร์ฟเวอร์ที่เปิดอยู่ให้เขียนไฟล์ทับไฟล์นั้นไฟล์ที่ได้จะเป็นของใครก็ตามที่ล็อกอินด้วย FTP ดังนั้นจึงแจ้งให้ผู้ใช้สำหรับข้อมูล FTP

แต่ FTP นั้นไม่ปลอดภัยมาก อย่างที่คุณได้พบวิธีอื่นคือผ่าน SSH2 การใช้ไลบรารี SSH สำหรับ PHP สามารถทำการเชื่อมต่อ SSH กลับไปที่เซิร์ฟเวอร์ในลักษณะเดียวกัน และนั่นคือสาเหตุที่มันต้องการไพรเวตคีย์เพราะใช้เพื่อทำการเชื่อมต่อขาออกกลับไปยังตัวมันเอง โดยทำการเชื่อมต่อนั้นสามารถตั้งค่าข้อมูลประจำตัวและเขียนไฟล์เป็นผู้ใช้ที่มีข้อมูลประจำตัวเหล่านั้น

หากคุณกังวลว่ามันมีคีย์เหล่านั้นให้สร้างชุดคีย์ใหม่และใช้เพื่อจุดประสงค์นี้โดยเฉพาะ

เพื่อตอบคำถามโดยตรงของคุณไม่ใช่ WordPress ไม่ได้ "ให้" กุญแจทุกที่ มันดาวน์โหลดแพ็คเกจการอัพเกรดปลดมันจากนั้นใช้คีย์เหล่านั้นเพื่อทำการเชื่อมต่อกลับไปยังเซิร์ฟเวอร์ของตัวเอง (ลูปแบ็คโดยทั่วไป) แล้วคัดลอกไฟล์ผ่านการเชื่อมต่อนั้น ในการทำเช่นนั้นข้อมูลประจำตัวหมายถึงไฟล์ที่ได้รับความเป็นเจ้าของที่ถูกต้องและหลีกเลี่ยงปัญหาด้านความปลอดภัยของการมีไฟล์ WordPress เป็นเจ้าของโดยกระบวนการ Apache / www / php หลัก


คำตอบที่ดี สิ่งนี้บรรเทาความกังวลของฉัน เอกสารนี้มีอยู่ทุกที่หรือไม่?
เอเวอรี่ชาน

ใช่แม้ว่าอาจจะมีจำนวนรายละเอียดต่างกัน: codex.wordpress.org/Filesystem_API
อ็อตโต

เมื่อคุณบอกว่าทำให้การเชื่อมต่อ "กลับไปที่ตัวเอง" คุณกำลังบอกว่า PHP เป็นไคลเอนต์ FTP และเชื่อมต่อกับเซิร์ฟเวอร์เดียวกันที่ทำงานอยู่หรือไม่?
dangel

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