Như các bạn đã biết thì trong Laravel có cung cấp cho chúng ta xác định các enviroment (môi trường) mà các chế độ liên quan đến debugging. Và nếu như chúng ta mà bật chế độ debug thì nó Laravel sẽ report lỗi là gì, ở đâu, thông tin request, env,...
Và như các bạn đã thấy thì các thông tin như APP_KEY, DATABASE,... đều hiện lên. Như thế này thì trong một số trường hợp sẽ hoàn toàn không tốt.
VD như môi trường staging
của dự án vẫn cần phải bật debug để test có lỗi còn biết luôn lỗi là gì ở đâu,... Nhưng lại cần ẩn một số thông tin như DB config,... thì lúc này quả thật rất cần thiết.
Và kể từ Laravel 5.5 chúng ta có thể ẩn những thông tin đó đi được và config rất đơn giản.
1. Ẩn Config trong debug mode.
Để cấu hình ẩn thông tin không muốn hiển thị ra màn hình report bạn chỉ cần thêm vào config/app.php
một block có key là debug_blacklist
và giá trị là array chứa các key muốn ẩn
VD: Mình muốn ẩn APP_KEY với DATABASE_PASSWORD config thì mình sẽ cấu hình như sau:
'debug_blacklist' => [
'_ENV' => [
'APP_KEY',
'DB_PASSWORD',
]
]
Thì lúc này màn hình report lỗi sẽ tự động convert giá trị của 2 env kia thành "***".
Và đây là config mình hay dùng để ẩn những thông tin cơ bản của laravel.
'debug_blacklist' => [
'_ENV' => [
'APP_KEY',
'DB_PASSWORD',
'REDIS_PASSWORD',
'MAIL_PASSWORD',
'PUSHER_APP_KEY',
'PUSHER_APP_SECRET',
],
'_SERVER' => [
'APP_KEY',
'DB_PASSWORD',
'REDIS_PASSWORD',
'MAIL_PASSWORD',
'PUSHER_APP_KEY',
'PUSHER_APP_SECRET',
],
'_POST' => [
'password',
],
],
Nếu như các bạn cần ẩn thêm gì thì cứ thêm vào nhé.
2. Lời kết.
Đây chỉ là một việc rất nhỏ nhưng trong một số trường hợp nó lại rất quan trọng đó :D. Và cuối cùng hãy nhớ là luôn luôn tắt debug mode trông môi trường production nhé!
Đăng ký nhận tin.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!
tung
4 năm trước
Chào tung,
Mình dùng thằng này nhé https://github.com/jaredreich/pell
Vũ Thanh Tài
4 năm trước
tungxen
4 năm trước
tungxen
4 năm trước
Chào tungxen,
Không phải wordpress nhé bạn
Vũ Thanh Tài
4 năm trước