แนวทางปฏิบัติที่แนะนำเกี่ยวกับสิทธิ์การใช้ไฟล์ / ไดเรกทอรีของ Joomla และความเป็นเจ้าของในระบบ Linux?


26

ในอดีตที่ผ่านมาฉันมักพบปัญหากับการอนุญาตและความเป็นเจ้าของไฟล์ / ไดเรกทอรี Joomla บนระบบลินุกซ์

ปัญหาที่พบ

  • ไม่สามารถถ่ายโอนไฟล์ไปยังเซิร์ฟเวอร์โดยใช้โปรแกรมเช่น WinSCP
  • ไม่สามารถติดตั้งส่วนเสริม Joomla ปลั๊กอิน ฯลฯ
  • ไฟล์และโฟลเดอร์ที่ไม่ปลอดภัยเนื่องจากการอนุญาตที่เป็นอันตรายและการตั้งค่าความเป็นเจ้าของ

แนวทางปฏิบัติที่ดีที่สุดที่แนะนำสำหรับการตั้งค่าการอนุญาตและการเป็นเจ้าของใน Joomla บนระบบ linux คืออะไร?

คำตอบ:


22

มีสาเหตุที่เป็นไปได้บางประการสำหรับปัญหาการอนุญาตให้ใช้ไฟล์และโฟลเดอร์บน Linux hosting

1. การอนุญาตไฟล์และโฟลเดอร์

ตรวจสอบการอนุญาตของโฟลเดอร์นั้นตั้งไว้ที่ 0755 และการอนุญาตของไฟล์นั้นถูกตั้งค่าไว้ที่ 0644 โปรดทราบว่าการอนุญาตของไฟล์และโฟลเดอร์นั้นสามารถรีเซ็ตเป็นการตั้งค่าความปลอดภัยมาตรฐานเหล่านี้ได้ทั่วทั้งไซต์โดยใช้ Akeeba Admin Tools รุ่นฟรี

2. พารามิเตอร์ PHP

ตรวจสอบพารามิเตอร์ upload_max_filesize ในแท็บข้อมูล PHP ในข้อมูลระบบว่าเพียงพอ คุณสามารถแทนที่การตั้งค่าเริ่มต้นในสภาพแวดล้อมการโฮสต์ที่ใช้ร่วมกันผ่านการตั้งค่า PHP ใน cPanel หรือphp.iniไฟล์ที่กำหนดเอง

3. เส้นทางที่ไม่ถูกต้องใน configuration.php

คุณอาจมีเส้นทางที่ไม่ถูกต้องระบุไว้สำหรับโฟลเดอร์ tmp และ log สิ่งเหล่านี้ถูกระบุในการกำหนดค่าระบบหรือสามารถอัปเดตได้โดยตรงในไฟล์ configuration.php หากคุณสะดวกสบายในการแก้ไขไฟล์ระบบโดยตรง หากคุณไม่แน่ใจว่าควรใช้พา ธ แบบใดให้สร้างและอัปโหลดไฟล์whereami.php(หรือคล้ายกัน) ไปยังโฟลเดอร์รูทของเว็บไซต์ด้วยเนื้อหาดังต่อไปนี้:

<?php
  print 'Current folder is ' . dirname(__FILE__);
?>

เรียกดูเพื่อ[mywebsite].com/whereami.phpดูเส้นทางไปยังโฟลเดอร์รูท

เมื่อคุณมีเส้นทางที่ถูกต้องอย่าลืมลบwhereami.phpไฟล์

4. ตัวจัดการไฟล์ PHP ที่ไม่เหมาะสม

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

คุณสามารถดูว่ามีการใช้ PHP handler System -> System Information -> WebServer to PHP Interfaceอะไร

มีบทความที่ดีเกี่ยวกับความสัมพันธ์ที่ดีของตัวจัดการไฟล์ PHP ที่: http://boomshadow.net/tech/php-handlers

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

บางครั้งการแก้ไขไฟล์และโฟลเดอร์จะเปลี่ยนเป็น 0777 แต่สิ่งนี้จะทำให้เว็บไซต์ของคุณอยู่ในสภาวะเสี่ยงและควรหลีกเลี่ยงการอนุญาตไฟล์ 0777

หาก บริษัท ให้บริการพื้นที่เว็บของคุณไม่สามารถเปิดใช้ suPHP หรือ FastCGI ได้ตัวเลือกอื่น ๆ อาจเป็นไปได้ที่จะหา บริษัท ให้บริการพื้นที่เว็บใหม่

5. พื้นที่ดิสก์

ตรวจสอบว่าคุณมีโควต้าพื้นที่ดิสก์ไม่เกิน

รายการตรวจสอบการแก้ไขปัญหา

แนวทางปฏิบัติที่ดีที่สุดที่แนะนำสำหรับการตั้งค่าการอนุญาตและการเป็นเจ้าของใน Joomla บนระบบ linux คืออะไร?

ดู 1 และ 4

ไม่สามารถถ่ายโอนไฟล์ไปยังเซิร์ฟเวอร์โดยใช้โปรแกรมเช่น WinSCP

ดู 1, 2, อาจจะ 4 และ 5

ไม่สามารถติดตั้งส่วนเสริม Joomla ปลั๊กอิน ฯลฯ

ดู 1, 2, 3, 4 และ 5

ไฟล์และโฟลเดอร์ที่ไม่ปลอดภัยเนื่องจากการอนุญาตที่เป็นอันตรายและการตั้งค่าความเป็นเจ้าของ

ดู 1 และ 4


1
ในกรณีของฉันฉันคิดว่าตัวจัดการ PHP เป็นปัญหาใหญ่
TryHarder

1
+1 คำตอบของคุณไม่ได้แก้ไขปัญหาของฉันจริง ๆ แต่ฉันได้รับแรงบันดาลใจให้ตรวจสอบการตั้งค่า PHP เซิร์ฟเวอร์ของฉัน - Safe Mode และเปิดใช้งานแล้วเป็นเปิดใช้งาน ดังนั้นการปิดเครื่องจึงเป็นวิธีแก้ปัญหา ดังนั้นสำหรับผู้อ่านในอนาคตถ้าไม่มีการแก้ไขข้างต้นนั้นตรวจสอบ Safe Mode ของคุณเช่นกัน :)
โมฮัมเหม็ Joraid

12

โปรดตรวจสอบระดับการอนุญาตควรเป็น 644 และ 755 สำหรับไฟล์และโฟลเดอร์ตามลำดับ

หลายครั้งที่ระดับการอนุญาตใช้งานได้ดีแม้ว่าจะมีปัญหาบางอย่างเกิดขึ้นก็ตาม หมายความว่าคุณจะต้องตรวจสอบความเป็นเจ้าของและกลุ่มของไฟล์และโฟลเดอร์เฉพาะ โดยปกติกลุ่มและความเป็นเจ้าของสามารถเปลี่ยนเป็น www-data สำหรับ apache (ใช้ในเว็บเซิร์ฟเวอร์ที่ใช้ Ubuntu)

อย่าลังเลที่จะตรวจสอบเอกสาร Joomla ที่น่าสนใจนี้ตามการตรวจสอบสิทธิ์ของไฟล์


Joomla มักจะเป็นของกลุ่ม www-data หรือไม่?
TryHarder

1
พร้อมกับคำตอบยัมของเราจะใช้โมดูล suPHP อาปาเช่ เราพบว่าเมื่อติดตั้งส่วนขยายเราจะไม่สามารถแก้ไขไฟล์เหล่านั้นผ่าน FTP และวีซ่าในทางกลับกัน (ปัญหาการเป็นเจ้าของไฟล์) SuPHP แก้ไขสิ่งนี้ให้เราโดยทำให้มั่นใจว่าสคริปต์ PHP ทำงานโดยได้รับอนุญาตจากเจ้าของ
Zachary Draper

1
กระบวนการ apache ทำงานภายใต้ 'www-data' ซึ่งเป็น unix-group มันไม่ได้เป็นเพียงแค่ Joomla, แอพพลิเคชั่นทั้งหมดที่ทำงานกับอาปาเช่
Shyam

เป็นไปได้หรือไม่ที่จะพัฒนาและเรียกใช้เชลล์สคริปต์เพื่อแก้ไขสิทธิ์ไฟล์ทั้งหมดโดยอัตโนมัติ?
NivF007

1
ใช่. gist.github.com/ssv445/11204300คุณสามารถเรียกใช้สคริปต์ใน cron
Shyam

8

ทางออกที่ง่ายสำหรับฉันคือให้ PHP ทำงานในโหมด CGI อย่างรวดเร็วและตั้งค่าความเป็นเจ้าของของไดเรกทอรี Joomla ให้กับผู้ใช้ FTP ดังนั้นคุณจะสามารถอัปโหลดและเขียนทับไฟล์ผ่าน FTP และ Joomla จะสามารถเขียนไฟล์ได้เช่นกัน

วิธีการทำสิ่งนี้ในสภาพแวดล้อมการโฮสต์ที่ใช้ร่วมกัน (หากได้รับอนุญาต) คือการเพิ่มสิ่งนี้ลงในไฟล์. htaccess ของคุณ:

AddHandler php53-cgi .php

ดูภาพรวมเกี่ยวกับโหมดต่างๆ


7

สิทธิ์ควรเป็น 644 และ 755 ตามที่ Shyam อธิบาย

ใน Joomla คุณสามารถหลีกเลี่ยงปัญหาทั้งหมดที่คุณกล่าวถึงด้วยวิธีการดังต่อไปนี้

ไม่สามารถถ่ายโอนไฟล์ไปยังเซิร์ฟเวอร์โดยใช้โปรแกรมเช่น WinSCP

  • สิ่งนี้อาจเกิดขึ้นเนื่องจากได้รับอนุญาตจาก (444) เช่น Joomla configuration.phpมีสิทธิ์นี้มันไม่อนุญาตตามค่าเริ่มต้น (เพื่อความปลอดภัย)
  • สถานการณ์อื่นสำหรับข้อผิดพลาดเดียวกันนี้คือเมื่อคุณถ่ายโอนไซต์หรือโฟลเดอร์จากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่ง

ไม่สามารถติดตั้งส่วนเสริม Joomla ปลั๊กอิน ฯลฯ

  • สิ่งนี้จะเกิดขึ้นเนื่องจากtemp/logโฟลเดอร์ไม่ได้รับอนุญาต (จำเป็นต้องใช้ 755)

  • หรือสาเหตุอื่นคือtemp/logเส้นทางนั้นผิดconfiguration.php

ไฟล์และโฟลเดอร์ที่ไม่ปลอดภัยเนื่องจากการอนุญาตที่เป็นอันตรายและการตั้งค่าความเป็นเจ้าของ

  • นี่คือสิ่งที่สำคัญที่สุด Joomla มักจะแนะนำไม่ได้ใช้ 777 ไฟล์และโฟลเดอร์ถ้าคุณไม่ได้ตระหนักถึงนี้

หวังว่ามันจะช่วย ..


7

สิทธิ์ควรเป็น 644 และ 755 ตามที่ Shyam อธิบาย

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

มีโหมด FTP ภายใน Joomla ซึ่งช่วยให้คุณสามารถหลีกเลี่ยงปัญหานี้ได้ คุณสามารถเปิดใช้งานได้ในการกำหนดค่า Joomla ทั่วโลก จากนั้นจะทำการเข้าถึงไฟล์ทั้งหมดโดยใช้ผู้ใช้ FTP แทนผู้ใช้ Apache ปกติ

วิธีที่ดีกว่าคือการขอให้โฮสต์ทำการแก้ไขปัญหา พวกเขาสามารถตั้งค่า PHP (Apache) ให้ทำงานภายใต้ผู้ใช้พิเศษซึ่งในกรณีนี้ควรเป็นผู้ใช้ FTP ของคุณ จากนั้นทุกอย่างจะทำงานได้ดี


ผู้ใช้ / กลุ่มคือคำตอบตามที่คุณบอกว่าการมีผู้ใช้พิเศษสำหรับ PHP แก้ปัญหานี้โดยเฉพาะถ้ามันเกิดขึ้นพร้อมกับผู้ใช้ FTP
jackJoe

5

ใช่สิทธิ์ควรเป็น 644 และ 755 ตามที่อธิบายโดย Shyamแต่ผู้โพสต์อื่น ๆ ลืมที่จะพูดถึงว่านี่คือถ้าเว็บเซิร์ฟเวอร์ของคุณเป็นเจ้าของไฟล์และกลุ่มคือกลุ่มที่คุณเป็นเจ้าของ

ตัวอย่างเช่นใน FileZilla คุณจะเห็นการอนุญาตบางอย่างเช่นนี้:

Filename      Size   Filetype  Last Modified          Permissions   Owner/Group
somefile.txt  11KB   txt file  2014-04-23 3:43:00 AM      www-data myGroup 

สิทธิ์ drwxr-xr-x คือ 755 (เพียงเพิกเฉยต่อ dr ชั้นนำดังนั้นจึงเป็น wxr-xr-x) สิทธิ์การอ่านมีค่า 4 สิทธิ์การเขียนมีมูลค่า 2 และสิทธิ์การดำเนินการมีมูลค่า 1 .. ดังนั้นจึงมีทั้งหมดเพิ่มถึง 7 และนั่นคือสิ่งที่เจ้าของไฟล์นี้มี กลุ่มได้อ่านและดำเนินการอนุญาต แต่ไม่ได้เขียนดังนั้นจึงมี 5 และทุกคนมี 5 .. ทำให้การอนุญาต 755

754 จะเป็นเจ้าของที่มีการอ่านเขียนดำเนินการ กลุ่มที่มีการอ่านและดำเนินการและทุกคนมีสิทธิ์อ่านเท่านั้น

ในตัวอย่างด้านบนคุณจะเห็นว่าเจ้าของไฟล์คือ www-data (ซึ่งเป็นกลุ่มเว็บเซิร์ฟเวอร์เริ่มต้นสำหรับเซิร์ฟเวอร์ Apache หลายเครื่อง) และกลุ่มคือกลุ่ม myGroup ซึ่งเป็นกลุ่ม (ผู้ดูแลระบบ) ที่ฉันเป็นเจ้าของ

หมายเลขแรกคือสิทธิ์ของเจ้าของส่วนที่สองคือสิทธิ์ของกลุ่มและหมายเลขที่สามคือสิทธิ์ของทุกคน เห็นได้ชัดว่าคุณต้องระมัดระวังในการให้สิทธิ์เซิร์ฟเวอร์ที่ต้องการ ... และตรวจสอบให้แน่ใจว่าไฟล์ที่จำเป็นต้องถูกล็อคไม่สามารถเขียนหรือดำเนินการโดยใครก็ได้ (หมายเลขที่สาม) ด้านล่างคือความหมายของตัวเลข:

สมมติว่าเว็บเซิร์ฟเวอร์เป็นเจ้าของไฟล์ผู้ดูแลระบบของคุณอยู่ในกลุ่มและแน่นอนว่าทุกคนเป็นหมายเลขที่สาม

644: ทุกคนสามารถอ่านไฟล์ที่มีการอนุญาตให้ตั้งค่าเป็น 644 และเขียนได้โดยเจ้าของไฟล์ / โฟลเดอร์เท่านั้น

755: ไฟล์ที่มีการอนุญาตให้ตั้งเป็น 755 นั้นทุกคนสามารถอ่านได้และเรียกใช้งานได้ แต่เจ้าของไฟล์ / โฟลเดอร์เท่านั้นที่สามารถเขียนได้

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

นี่คือคำสั่ง Linux สำหรับติดตั้ง Joomla! สิทธิ์ที่แนะนำจากบรรทัดคำสั่ง สิทธิ์การใช้ไฟล์ Joomla ที่แนะนำ

Set ownership:   sudo chown -R www-data:myName /path/to/your/domain.com
Set Directories: sudo find /path/to/your/domain.com -type d -exec chmod 755 {} \;
Set files :      sudo find /path/to/your/domain.com -type f -exec chmod 644 {} \;

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

หลังจากที่คุณเรียกใช้คำสั่งเหล่านี้คุณจะต้องแก้ไขการอนุญาตสำหรับไดเรกทอรีใด ๆ ที่ต้องการการอนุญาตเพิ่มเติม ... เช่น ... ผู้ใช้ที่อัพโหลดภาพเป็นต้น

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

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

อย่างไรก็ตามฉันพบว่ามีความเป็นเจ้าของและการอนุญาตที่ไม่ค่อยมีประโยชน์เพราะฉันชอบใช้ FileZilla และเทอร์มินัลบรรทัดคำสั่งเซสชันเกือบตลอดเวลาและฉันอัปโหลดไฟล์จำนวนมากด้วยตนเอง แต่ฉันไม่สามารถเขียนทับไฟล์ใด ๆ เพราะฉันไม่ได้เป็นเจ้าของและฉันไม่มีสิทธิ์ในการเขียน ฉันสามารถมี FileZilla เข้าสู่ระบบภายใต้บัญชีเว็บเซิร์ฟเวอร์ แต่ ... ฉันต้องการให้ FileZilla ลงชื่อเข้าใช้ภายใต้บัญชีของฉันดังนั้นฉันสามารถเรียกดูไดเรกทอรีอื่น ๆ ได้เช่นกันไม่ใช่แค่ไฟล์ที่เว็บเซิร์ฟเวอร์เข้าถึง ... ดังนั้น ... ฉันเปลี่ยนความเป็นเจ้าของและการอนุญาตเป็น:

Filename      Size   Filetype  Last Modified          Permissions   Owner/Group
somefile.txt  11KB   txt file  2014-04-23 3:43:00 AM  drwxr-xr-x    myName www-data

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

หากคุณทำตามวิธีของฉันเหล่านี้คือคำสั่ง:

 Set ownership:   sudo chown -R myName:www-data /path/to/your/domain.com
 Set Directories: sudo find /path/to/your/domain.com -type d -exec chmod 775 {} \;
 Set files :      sudo find /path/to/your/domain.com -type f -exec chmod 664 {} \;  

"drwxr-xr-x คือ 755" - นี่จะเป็น 751 (ไม่มีใบอนุญาตการอ่านสำหรับสาธารณะ) ไม่ใช่ 755 (แม้ว่า 755 จะมากกว่า "ปกติ" สำหรับไดเรกทอรี)
MrWhite

4

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

ในกรณีนี้ฉันจะอัปโหลดไฟล์นี้เป็นfix.phpเซิร์ฟเวอร์ FTP และเปิดในเบราว์เซอร์:http://example.com/fix.php

<?php
file_fix_directory(dirname(__FILE__));

function file_fix_directory($dir, $nomask = array('.', '..')) {
  if (is_dir($dir)) {
     // Try to make each directory world writable.
     if (@chmod($dir, 0777)) {
       echo "<p>Made writable: " . $dir . "</p>";
     }
  }
  if (is_dir($dir) && $handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
      if (!in_array($file, $nomask) && $file[0] != '.') {
        if (is_dir("$dir/$file")) {
          // Recurse into subdirectories
          file_fix_directory("$dir/$file", $nomask);
        }
        else {
          $filename = "$dir/$file";
            // Try to make each file world writable.
            if (@chmod($filename, 0666)) {
              echo "<p>Made writable: " . $filename . "</p>";
            }
        }
      }
    }

    closedir($handle);
  }

}

สคริปต์นี้ตั้งค่าการอนุญาตทั้งหมดของไฟล์เป็น 666 และไดเรกทอรีทั้งหมดเป็น 777 การเขียนทั่วโลกไม่ใช่ชุดของการอนุญาตที่ดีที่สุดสำหรับโฮสต์ที่ใช้ร่วมกัน แต่คุณจะสามารถเข้าถึงไฟล์ของคุณอีกครั้งและจากนั้นสามารถตั้งค่าให้ถูกต้องด้วย FTP


1

ไปงานเลี้ยงสาย ฉันมาที่นี่เพื่อดูและที่อื่น ๆ สำหรับคำแนะนำที่ชัดเจนเกี่ยวกับสิ่งที่โฟลเดอร์จะต้องเขียนได้สำหรับ Joomla

ขออภัยคนที่จะเป็นลางสังหรณ์ของข่าวร้าย

คำแนะนำในการใช้สิทธิ์ 755 สำหรับไดเรกทอรีทั้งหมดและ 644 สำหรับโฟลเดอร์ทั้งหมดเป็นความรับผิดชอบอย่างน้อยที่สุด

การทำให้โฟลเดอร์และไฟล์ทั้งหมดของคุณเป็นไฟล์ที่เจ้าของสามารถเขียนได้ตราบใดที่เจ้าของไม่ใช่เว็บเซิร์ฟเวอร์ (apache และคณะ)

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

คุณคิดว่า. htaccess จะช่วยเควินของคุณหรือไม่ ลืมไปเถอะเพราะคุณอนุญาตให้เว็บเซิร์ฟเวอร์เข้าถึงการเขียนเพื่อนแฮ็กเกอร์ที่รักของเราสามารถสร้างไฟล์. htaccess ของพวกเขาเองเพื่อให้สิทธิ์ที่พวกเขาต้องการ! เช่นโอ้ฉันไม่รู้ว่า Umm สร้างไฟล์. jpg ที่สามารถเรียกใช้งานได้โดยเซิร์ฟเวอร์ และคุณคิดว่าการป้องกันการเรียกใช้. php จะครอบคลุม A ของคุณ

แต่ให้แน่ใจว่ามีเพียงโฟลเดอร์ที่ต้องการเข้าถึงการเขียนเท่านั้น 755 และ 644 สำหรับโฟลเดอร์ต่อไปนี้

public_html/images
public_html/cache
public_html/tmp

และให้แน่ใจว่าคุณปิด. htaccess ไฟล์ด้วย AllowOveride none สำหรับโฟลเดอร์ที่เขียนได้ทั้งหมด (เช่นที่อยู่ด้านบน)

ขอให้โชคดีกับพวกคุณที่แชร์โฮสติ้งเพราะนี่เป็นองค์ประกอบการกำหนดค่าที่คุณไม่สามารถควบคุมได้

อย่าคิดว่าการสร้างไฟล์. htaccess แบบอ่านอย่างเดียวจะช่วยได้ หากเพื่อนของแฮ็กเกอร์ของเราสามารถสร้างโฟลเดอร์ใหม่ (สามารถทำได้) พวกเขาสามารถสร้าง. htaccess ของตนเองได้

สำหรับบรรดาของคุณที่ใช้พื้นที่ร่วมกันสำหรับทุกสิ่งที่ศักดิ์สิทธิ์โปรดรับเบาะแสเกี่ยวกับความปลอดภัย

หากคุณไม่เข้าใจเรื่องความปลอดภัยโปรดออกไปจากธุรกิจโฮสติ้งที่คุณทำไว้กับพวกเราที่เหลือ

ตอนนี้กลับไปที่การค้นหาของฉันสำหรับคำแนะนำที่ชัดเจนในโฟลเดอร์ที่ต้องการเข้าถึงการเขียน ...


ขอบคุณ Chris แต่ฉันอาจจะติดอยู่กับการอนุญาตมาตรฐานไฟล์ 755 และ 644 ในขณะที่เว็บไซต์ Joomla แนะนำอย่างเป็นทางการและผู้เชี่ยวชาญด้านความปลอดภัยเช่น Sucuri: docs.joomla.org/Security_and_Performance_FAQs blog.sucuri.net/2015/09/ …
Neil Robertson

ใช่ฉันรู้ว่ามันเป็น "แนะนำ" แต่เมื่อคุณถูกเอาเปรียบและหาสาเหตุว่าทำไมคุณถูกเอาเปรียบฉันสามารถรับรองคุณโยน "คำแนะนำ" ออกไปนอกหน้าต่างและเริ่มต้นจากศูนย์ คำแนะนำคือเส้นทางที่มีความต้านทานน้อยที่สุด ไม่ปลอดภัยที่สุด
DeveloperChris

ขั้นตอนที่ 1 ถึง 10 ของรายการ "การรักษาเว็บไซต์ Joomla ให้ปลอดภัย" ที่joomla.stackexchange.com/a/180/120พร้อมกับการอนุญาตให้ใช้ไฟล์มาตรฐานทำงานได้ดีสำหรับ 50 เว็บไซต์ที่ฉันดูแล ไม่กี่ปีที่ผ่านมา ระยะทางของคุณอาจแตกต่างกันไป
Neil Robertson

@NeilRobertson ฉันเห็นด้วยกับรายการนั้น แต่หากมีการหาประโยชน์ที่ไม่ติดกับดักบรรทัดสุดท้ายของการป้องกันคือไม่ให้สิทธิ์การเขียนกับเว็บเซิร์ฟเวอร์ (apache et al) นั่นไม่ใช่คำแนะนำเฉพาะของ joomla นอกจากนี้คนส่วนใหญ่ไม่สามารถใช้คำแนะนำจำนวนมากในรายการนั้น พวกเขาไม่ได้มีทรัพยากรหรือใช้โฮสติ้งราคาถูก (ไม่ใช่ที่ถูกที่สุด)
DeveloperChris
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.