The laravel deployment documentation page mentions , if you follow the documentation you'll probably run the following command when deploying your website to production:
Show You might be asking, what does this have to do with the Well, when you cache the configuration laravel joins all your configurations into a single file for better performance, but another effect this command has is that laravel will stop reading your Does that mean that you should stop using your .env file at all?Well no, it only means that you should stop using the Sau 1 thời gian lười viết bài mình đã quay trở lại. Hôm nay mình sẽ viết về một số lỗi mà mình thường thấy các bạn mới học hoặc tự học Laravel hay gặp phải. 1. Di chuyển index.php ra ngoài thư mục gốc.Đây là cách sai hoàn toàn, sai 100% nhé. Và trên công ty mình thì cách này không bao giờ được phép sử dụng. Đây là lỗi đặc biệt nghiêm trọng mà mình thường thấy. Thay đổi cấu trúc mặc định là việc làm hoàn toàn không nên nhé. Laravel đã đưa index.php vào thư mục public để tránh truy cập trái phép vào các file cấu hình, data của website nên chúng ta không nên thay đổi nó. Trước đây mình đã từng làm cách này khi mới học Laravel và rất nhiều video hướng dẫn làm theo cách này dẫn tới 1 loạt websites có thể bị lộ thông tin cấu hình. Ví dụ: https://www.novochem.net/.env, http://cworldcars.com/.env Những thông tin này có vẻ không quá nhạy cảm nên mình mới show lên đây để anh em rút kinh nghiệm, chớ có phá website người ta mà tội nghiệp. Còn nhiều lắm nhưng mình để dành xài 😀 Một số sites họ đã dùng php.ini để chặn cách file quan trọng như .env nhưng cách làm này luôn tiềm ẩn rủi ro khi bạn không thể chắc chắn là đã chặn hết các files quan trọng. Ví dụ: https://demo.themeqx.com/classifieds/composer.json Composer.json có thể là 1 file rất hữu ích cho hacker khi họ có thể nắm rõ toàn bộ thông tin về phiên bản Laravel và các packages đang sử dụng. Cách khắc phục: – Sử dụng .httacess: bạn chỉ cần tạo 1 file .htaccess ngoài thư mục gốc để điều hướng tất cả request của clients vào thư mục /public RewriteEngine on RewriteCond %{REQUEST_URI} !public RewriteRule (.*)$ public/$1 [L] – Cấu hình virtual host để tạo domain ảo, trỏ thẳng vào thư mục public. Ví dụ: your-domain.local<VirtualHost *:80> </VirtualHost>– Sử dụng phần mềm hỗ trợ tạo domain ảo như Ampps, Open server, Docker … 2. Bật debug trên productionĐây là 1 lỗi cũng khá nghiêm trọng, đặc biệt khi kể từ Laravel 5.5 thì Whoops đã được đưa trở lại làm package mặc định của Laravel. Nó giúp cho việc debug dễ dàng hơn nhưng lại cực kỳ nguy hiểm khi người dùng quên tắt debug khi lên production. Toàn bộ thông tin bị hiện lên rõ ràng như vậy thì quả là không tốt chút nào. Cách khắc phục:
'debug_blacklist' => [ ],Lúc này thì những thông tin sẽ được ẩn và thay bằng dấu ‘*‘ 3. Sử dụng dev dependencies trên production.Một số packages như Laravel Debugbar, Laravel Dusk … là những packages không nên được sự dụng trên production vì nó có thể để lộ cách thông tin nhạy cảm về cấu hình server và các dữ liệu quan trọng như sessions, .env, SERVER … Ví dụ: Cách khắc phục: Chạy composer install –no-dev để loại bỏ hết dev dependencies trước khi upload lên server production.Trên đây chỉ là một số lỗi cơ bản và nghiêm trọng mà mình thường thấy ở những bạn ít kinh nghiệm khi làm việc với Laravel. Hi vọng có thể giúp ích cho các bạn! Mình là 1 developer mới vào nghề, chưa có nhiều kinh nghiệm với lập trình web nhưng luôn muốn chia sẻ những hiểu biết của mình với các lập trình viên khác. Khá là gà và lười viết blog, chỉ ham code và chuyên Laravel. |