Magento 2:“ เว็บเซิร์ฟเวอร์ของคุณตั้งค่าไม่ถูกต้องและอนุญาตให้เข้าถึงไฟล์สำคัญได้โดยไม่ได้รับอนุญาต กรุณาติดต่อผู้ให้บริการโฮสต์ของคุณ”


18

สภาพแวดล้อมการพัฒนา Magento 2 ของฉันเริ่มกระตุ้นฉันด้วยข้อความแสดงข้อผิดพลาดต่อไปนี้

เว็บเซิร์ฟเวอร์ของคุณตั้งค่าไม่ถูกต้องและอนุญาตการเข้าถึงไฟล์สำคัญ กรุณาติดต่อผู้ให้บริการโฮสต์ของคุณ

มีใครติดตาม

  1. มีการตรวจสอบความปลอดภัยอะไรบ้าง
  2. การตรวจสอบเหล่านี้เกิดขึ้นที่ไหนในรหัสหลัก

ช่วยบอกหน่อยได้ไหมว่าคุณใช้รุ่นไหน 2
Amit Bera

@AmitBera กับแพคเกจส่วนบุคคลเป็นที่เก็บนักแต่งเพลงฉันไม่แน่ใจจริงๆวิธีการตรวจสอบว่า
Alan Storm

1
@AlanStorm ข้อความนี้มาจากMagento\AdminNotification\Model\System\Message\Securityชั้นเรียน สถานการณ์ใดที่คุณได้รับข้อความนี้
Bojjaiah

@magentotwo เมื่อฉันลงชื่อเข้าใช้แบ็กเอนด์
Alan Storm

คำตอบ:


12

การตรวจสอบนี้บอกว่าทุกคนสามารถเข้าถึงapp/etc/*ไฟล์ได้ ตัวอย่างเช่นapp/etc/env.phpไฟล์ที่เก็บหนังสือรับรองไปยัง DB, คีย์ crypt และทรัพยากรอื่น ๆ

ทางออกที่ดีกว่าคือการกำหนดค่าpubโฟลเดอร์ของคุณเป็นเว็บรูทแทนที่จะเป็นไดเรกทอรีการติดตั้งเริ่มต้นตามปกติmagento2ตามที่ระบุในเอกสารการติดตั้งส่วนใหญ่ สิ่งนี้จะปรับปรุงความปลอดภัยโดยรวมและแก้ไขปัญหาของคุณ อย่าลืมแก้ไขคำจำกัดความตำแหน่ง Apache / Nginx อื่น ๆ ของคุณด้วย สำหรับ Nginx $MAGE_ROOTคำสั่งควรเป็น /var/www/example.com/magento2/pubและrootคำสั่งของคุณควรเป็นเช่นนั้น ตรวจสอบให้แน่ใจว่าได้ล้างแคชของคุณหลังจากทำการเปลี่ยนแปลงเช่นกันมิฉะนั้นรูปภาพและไฟล์ css จะเสียหาย (ระบบ -> เครื่องมือ -> การจัดการแคช -> ล้างแคชวีโอไอพี)

\Magento\AdminNotification\Model\System\Message\Securityรับผิดชอบการทำงานนี้ ดู_isFileAccessibleวิธีการ

มันจะเสี่ยงร้านวีโอไอพีอย่างแน่นอน


3

หากคุณใช้ Apache ตรวจสอบให้แน่ใจว่า.htaccessไฟล์ที่มาพร้อมกับ magento ใน/app/โฟลเดอร์นั้นมีอยู่บนเว็บเซิร์ฟเวอร์ของคุณและ Apache ได้รับการกำหนดค่าให้ใช้ไฟล์. htaccess เพื่อแทนที่การตั้งค่าต่อโฟลเดอร์ แต่ควรเปิดใช้งานตามค่าเริ่มต้น

เนื้อหาของไฟล์นี้ควรจะเป็น:

<IfVersion < 2.4>
    order allow,deny
    deny from all
</IfVersion>
<IfVersion >= 2.4>
    Require all denied
</IfVersion>

1

มันเป็นข้อความของระบบและข้อความนี้มาจากวิธีการในชั้นเรียนgetText() Magento\AdminNotification\Model\System\Message\Security

เมื่อเราเปิดแผงผู้ดูแลระบบตัวควบคุมจะตรวจสอบการแจ้งเตือนทั้งหมดและเกี่ยวข้องกับความปลอดภัย

คุณสามารถแก้ปัญหาจากวิธีการในexecute()Magento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php


ข้อมูลที่เป็นประโยชน์ แต่ไม่ใช่สิ่งที่ฉันถาม รหัสบางส่วนใน Magento ใช้การทดสอบระบบอย่างชัดเจนและเพิ่มข้อความนั้น ฉันต้องการทราบว่าการทดสอบระบบเหล่านั้นอยู่ที่ไหน
Alan Storm

1

MAGENTO เซิร์ฟเวอร์ 2 Centos 7

เมื่อต้องการแก้ไขข้อความ "เว็บเซิร์ฟเวอร์ของคุณตั้งค่าไม่ถูกต้องและอนุญาตให้เข้าถึงไฟล์สำคัญโปรดติดต่อผู้ให้บริการโฮสต์ของคุณ"

1) ### shh- เรียกใช้คำสั่งต่อไปนี้จากบัญชีรูทของคุณ ###

chown -R accountuser:accountusergroup /path-to-root-folderl/

2) ### ssh - เรียกใช้คำสั่งต่อไปนี้จากผู้ใช้บัญชีโดเมน (ไม่ใช่บัญชีเว็บเซิร์ฟเวอร์ของคุณเช่น apache ฯลฯ ) ###

find . -type d -exec chmod 770 {} \; & find . -type f -exec chmod 660 {} \; && chmod u+x bin/magento

chmod -R g+w /path-to-root-folderl/{pub,var} chmod -R g+w /path-to-root-folderl/{app/etc,vendor} chmod -R g+s pub/static pub/media . find var/generation -type d -exec chmod g+s {} \; find var/session -type d -exec chmod g+s {} \;

3) ### ssh - เรียกใช้คำสั่งต่อไปนี้จากบัญชีรูทของคุณ ###

chown -R domain_account_user:webservergroup /path-to-root-folderl/var chown -R domain_account_user:webservergroup /path-to-root-folder/app/etc chown -R domain_account_user:webservergroup /path-to-root-folderl/pub chown -R webserverUSER:webservergroup /path-to-root-folder/var/session

สิ่งนี้จะแก้ไขข้อผิดพลาดนี้และข้อผิดพลาดอื่น ๆ อีกมากมาย หมายเหตุ: ปิดใช้งาน SUPHP เมื่อใช้ magento 2 คุณจะปวดหัวได้มาก ขณะนี้ฉันใช้ mod_mpm_event กับ ea-apache24-mod_cgid และ PHP 7 และ ea-php70-php-fpm

ฉันใช้วีโอไอพี 2 ของฉันกับ mod_mpm_event กับ ea-apache24-mod_cgid และ PHP 7 ก่อนที่ฉันจะเพิ่ม PHP-FPM

หากคุณใช้ cpanel / apache และคุณไม่ต้องการใช้ easyapache เพื่อย้ายไปที่ mod_mpm_event + ea-apache24-mod_cgid คุณสามารถใช้เชลล์จาก ssh เรียกใช้คำสั่งร้องจาก ssh yum shell remove ea-apache24-mod_mpm_worker ลบ ea-apache24-mod_cgi ติดตั้ง ea-apache24-mod_mpm_event ติดตั้ง ea-apache24-mod_cgid เรียกใช้ออกจาก


นั่นเป็นเพียงการทำงานในสภาพแวดล้อมการโฮสต์บาง .. อาจเป็นความคิดที่ไม่ดีจริง ๆ กับคนอื่น ๆ
Andy

1

ในกรณีของฉันปัญหาเกิดจากข้อเท็จจริงที่ว่าdefaultมุมมองร้านค้าถูกปิดใช้งาน ขณะทำการตรวจสอบความปลอดภัยMagento\AdminNotification\Model\System\Message\Securityคลาสพยายามดาวน์โหลดapp/etc/config.phpไฟล์มีข้อผิดพลาดเกิดขึ้น ( Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive) ซึ่งเปลี่ยนรหัสการตอบสนองเป็น 200 (โดยปกติควรเป็น 404) ดังนั้นระบบจึงคิดว่าสามารถเข้าถึงไฟล์ได้ซึ่งจะหมายถึงปัญหาด้านความปลอดภัย

เพียงเปิดใช้งานdefaultมุมมองร้านค้าเพื่อแก้ไขปัญหานี้


1

ทางออกหนึ่งที่ง่ายคือถ้าคุณไม่ได้ใช้ nginx แทนที่จะเปลี่ยนชื่อไฟล์ nginx.conf เป็น 'nginx.conf.sample' ในไดเรกทอรีรากของการติดตั้ง magento ของคุณ สิ่งนี้ใช้ได้สำหรับฉันและข้อความเตือนหายไปใน Magento Admin


0

ฉันคิดว่ามันเป็นปัญหาเกี่ยวกับการอนุญาตไดเรกทอรีและไฟล์ โปรดให้สิทธิ์ที่เหมาะสมเช่น 0755 ไปยังไดเรกทอรี 0644 ไปยังไฟล์หากไม่สามารถแก้ไขปัญหาได้โปรดตรวจสอบไฟล์. htaccess ด้วย


ข้อมูลที่เป็นประโยชน์ แต่ไม่ใช่ข้อมูลที่ฉันขอ ฉันต้องการทราบว่าในการตรวจสอบเหล่านี้เกิดขึ้นที่ไหนในฐานข้อมูลหลักของวีโอไอพี
Alan Storm

0

การทดสอบเหล่านี้ที่มีอยู่ภายในชั้นเรียนMagento\AdminNotification\Model\System\Message\Securityและข้อความ notifictaion function getText()ที่มาจาก ฉันคิดว่า magento ตรวจสอบการเข้าถึงapp/etc/*ไฟล์และขึ้นอยู่กับว่าแสดงคำเตือนในแผง admin

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