Magento 2: Mã máy chủ web của bạn được thiết lập không chính xác và cho phép truy cập trái phép vào các tệp nhạy cảm. Vui lòng liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn


18

Môi trường phát triển Magento 2 của tôi đã bắt đầu chọc tôi với thông báo lỗi sau

Máy chủ web của bạn được thiết lập không chính xác và cho phép truy cập trái phép vào các tệp nhạy cảm. Vui lòng liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn

Có ai theo dõi không

  1. Những kiểm tra an ninh đang xảy ra?
  2. Trường hợp trong mã cốt lõi những kiểm tra này xảy ra?

Bạn có thể vui lòng cho tôi biết phiên bản nào của 2, bạn đã sử dụng
Amit Bera

@AmitBera Với các gói riêng lẻ là kho lưu trữ của nhà soạn nhạc Tôi không thực sự chắc chắn làm thế nào để kiểm tra điều đó
Alan Storm

1
@AlanStorm, tin nhắn này đến từ Magento\AdminNotification\Model\System\Message\Securitylớp. tình huống nào bạn nhận được tin nhắn này?
Bojjaiah

@magentotwo Khi tôi đăng nhập vào phần phụ trợ
Alan Storm

Câu trả lời:


12

Kiểm tra này nói rằng bất cứ ai cũng có thể truy cập vào app/etc/*các tập tin. Ví dụ: app/etc/env.phptệp lưu trữ thông tin đăng nhập vào DB, khóa mật mã và các tài nguyên khác.

Giải pháp tốt hơn là cấu hình pubthư mục của bạn làm gốc web thay vì thư mục cài đặt mặc định, thông thường magento2, như được chỉ định trong hầu hết các tài liệu cài đặt. Điều này sẽ cải thiện bảo mật tổng thể và khắc phục vấn đề của bạn. Hãy chắc chắn chỉnh sửa các định nghĩa vị trí Apache / Nginx khác của bạn. Đối với Nginx, $MAGE_ROOTchỉ thị nên /var/www/example.com/magento2/pubrootchỉ thị của bạn cũng vậy . Đảm bảo xóa bộ nhớ cache của bạn sau khi thực hiện thay đổi, nếu không, hình ảnh và tệp css sẽ bị hỏng (Hệ thống -> Công cụ -> Quản lý bộ đệm -> Flush Magento Cache).

\Magento\AdminNotification\Model\System\Message\Securitychịu trách nhiệm về chức năng này. Xem _isFileAccessiblephương pháp.

Nó chắc chắn sẽ có nguy cơ cửa hàng Magento.


3

Nếu bạn đang sử dụng Apache, hãy đảm bảo rằng .htaccesstệp có trong magento có trong /app/thư mục có trên máy chủ web của bạn và Apache được cấu hình để sử dụng các tệp .htaccess để ghi đè cài đặt cho mỗi thư mục, nhưng điều này sẽ được bật theo mặc định.

Nội dung của tệp này được cho là:

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

1

Đó là một thông báo hệ thống và thông báo này đến từ getText() phương thức, lớp Magento\AdminNotification\Model\System\Message\Security.

Khi chúng tôi mở bảng Quản trị, bộ điều khiển sẽ kiểm tra tất cả các thông báo và bảo mật liên quan.

bạn có thể gỡ lỗi từ execute()phương thức trong Magento\AdminNotification\Controller\Adminhtml\System\Message\ListAction.php.


Thông tin hữu ích, nhưng không phải những gì tôi yêu cầu. Một số mã trong Magento rõ ràng đã chạy một số thử nghiệm hệ thống và thêm thông báo đó. Tôi muốn biết những bài kiểm tra hệ thống đó ở đâu.
Alan Storm

1

Máy chủ MAGENTO 2 Centos 7

Để sửa thông báo "Máy chủ web của bạn được thiết lập không chính xác và cho phép truy cập trái phép vào các tệp nhạy cảm. Vui lòng liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn".

1) ### shh- Chạy lệnh sau từ tài khoản root của bạn. ###

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

2) ### ssh - Chạy lệnh sau từ người dùng tài khoản miền (không phải tài khoản máy chủ web của bạn như apache, v.v.). ###

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 - Chạy lệnh sau từ tài khoản root của bạn. ###

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

Điều này sẽ khắc phục lỗi này và nhiều lỗi khác. Lưu ý: vô hiệu hóa SUPHP khi sử dụng magento 2, bạn sẽ tiết kiệm cho mình rất nhiều vấn đề đau đầu. Hiện tại tôi đang chạy mod_mpm_event với ea-apache24-mod_cgid và PHP 7 và ea-php70-php-fpm.

Tôi đã chạy magento 2 chỉ với mod_mpm_event với ea-apache24-mod_cgid và PHP 7 trước khi tôi thêm PHP-FPM.

Nếu bạn đang chạy cpanel / apache và bạn không muốn sử dụng easyapache để chuyển sang mod_mpm_event + ea-apache24-mod_cgid, bạn có thể sử dụng shell từ ssh. Chạy lệnh dưới đây từ ssh. yum shell remove ea-apache24-mod_mpm_worker gỡ bỏ ea-apache24-mod_cgi cài đặt ea-apache24-mod_mpm_event cài đặt ea-apache24-mod_cgid chạy thoát


điều đó chỉ hoạt động trên một số môi trường lưu trữ .. có thể là ý tưởng thực sự tồi tệ đối với những người khác
Andy

1

Trong trường hợp của tôi, vấn đề được gây ra bởi thực tế là defaultchế độ xem cửa hàng đã bị vô hiệu hóa. Trong khi kiểm tra bảo mật được thực hiện, Magento\AdminNotification\Model\System\Message\Securitylớp đã cố tải xuống app/etc/config.phptệp, một ngoại lệ đã được ném ( Fatal error: Uncaught Magento\Framework\Exception\NoSuchEntityException: Default store is inactive), biến đổi mã phản hồi thành 200 (thông thường sẽ có kết quả 404). Vì vậy, hệ thống nghĩ rằng tệp có thể truy cập được, điều đó có nghĩa là vấn đề bảo mật.

Chỉ cần kích hoạt defaultchế độ xem cửa hàng để khắc phục điều này.


1

Một giải pháp dễ dàng là, nếu bạn không sử dụng nginx, hãy đổi tên tập tin nginx.conf thành 'nginx.conf.sample' trong thư mục gốc của bản cài đặt magento của bạn. Điều này làm việc cho tôi và thông báo cảnh báo biến mất trong Magento Admin.


0

Tôi nghĩ đó là một vấn đề về quyền và thư mục. Vui lòng cung cấp các quyền thích hợp như 0755 cho các thư mục 0644 cho các tệp, nếu nó không giải quyết được vấn đề, vui lòng kiểm tra tệp .htaccess.


thông tin hữu ích, nhưng không phải là thông tin tôi yêu cầu. Tôi muốn biết nơi mã hóa lõi Magento ở đâu trong các kiểm tra này xảy ra.
Alan Storm

0

Các bài kiểm tra này có mặt trong lớp Magento\AdminNotification\Model\System\Message\Securityvà văn bản thông báo đó đến từ function getText(). Tôi nghĩ rằng magento kiểm tra khả năng truy cập của app/etc/*các tệp và dựa vào đó hiển thị cảnh báo trong bảng quản trị.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.