Laravel Security: Ẩn thông tin quan trọng trong file .env bật debug mode
File .env
có thể nói là file quan trọng bật nhất trong bộ source code Laravel của bạn có phải không nào? Nơi đây nó chứa háng tá các thông tin nhạy cảm khác nhau như là: APP_KEY
, DB_USERNAME
, DB_PASSWORD
, token của các bên thứ 3, ... Đó chính là lí do mà Root Document của Laravel phải trỏ vào thư mục public
, tránh truy cập ngược vào source và đặc biệt là file .env
.
Nói đến đây thì không có gì phải bàn phải không nào, nhưng cuộc sống mà 😴 thỉnh thoảng có những người khác đang xem xét công việc phát triển của bạn và bạn không muốn họ nhìn thấy những thông tin nhạy cảm này nếu ứng dụng đang chạy bị lỗi 🤐, nhưng bạn cũng không muốn phải tiếp tục bật hay tắt gỡ lỗi 😥😥
Hoặc có đôi khi ứng dụng của bạn ở trên production, phát sinh một lỗi bạn không tài nào biết được nó là gì, bạn chỉ muốn thử bật debug lên trong tích tắt để coi nó là gì rồi tắt nhưng lại sợ bị người dùng vô tình bắt gặp và thấy được. Vậy thì giải pháp dưới đây dành cho bạn.
Hãy mở file config/app.php
bạn kiểm tra xem có key nào tên là 'debug_blacklist
' hay không, nếu không bạn hãy tạo một key như vậy và điền nội dung này vào
return [
// ...
'debug_blacklist' => [
'_ENV' => [
'APP_KEY',
'DB_PASSWORD',
'REDIS_PASSWORD',
'MAIL_PASSWORD',
'PUSHER_APP_KEY',
'PUSHER_APP_SECRET',
// thêm key bạn cho rằng nhạy cảm vào đây
],
'_SERVER' => [
'APP_KEY',
'DB_PASSWORD',
'REDIS_PASSWORD',
'MAIL_PASSWORD',
'PUSHER_APP_KEY',
'PUSHER_APP_SECRET',
// vào đây
],
'_POST' => [
'password',
// và vào đây nữa
],
],
];
Nếu bạn muốn ẩn tất cả ư =)) được thôi, cách dưới đây sẽ chỉ cho bạn làm điều đó mà không có chút khó khăn nào 🤣🤣
<?php
return [
// ...
'debug_blacklist' => [
'_COOKIE' => array_keys($_COOKIE),
'_SERVER' => array_keys($_SERVER),
'_ENV' => array_keys($_ENV),
],
];
Chỉ áp dụng cho phiên bản Laravel 5.5.13 ⏫ trở lên thôi nhé (Còn vì sao? Xem tại đây)
🏅🏅🏅🏅🏅
Ủng hộ Chung Nguyễn Blog
Chung Nguyễn Blog sử dụng FlashVPS - Dịch vụ quản trị máy chủ chuyên nghiệp để quản lý VPS
#FlashVPS là dịch vụ cloud panel trên nền tảng web hỗ trợ khách hàng:
- * Quản lý máy chủ số lượng nhiều
- * Không có kinh nghiệm quản lý máy chủ
- * Thích sử dụng giao diện web đơn giản, trực quan hơn terminal
- * Quá nhàm chán với việc ghi nhớ và lặp lại việc gõ các câu lệnh
- * Muốn tự động hóa mọi thao tác
- * Muốn tiết kiệm thời gian quản trị máy chủ
- * Muốn tiết kiệm tiền bạc, nhân lực quản trị máy chủ 👉 https://flashvps.dev
Các bài viết trên website thường xuyên được đăng tải và cập nhật trên trang Facebook Chung Nguyễn Blog hãy tặng cho Chung một LIKE nhé! Mãi yêu các bạn!
813 👍
Bình luận