Hôm nay chúng ta sẽ học về một trong các các bảo mật đơn giản trong larevel đó là ẩn config quan trọng trong chế độ debug Laravel. Nào chúng ta cùng bắt tay vào bài học ngay thôi các bạn nhé!
1. Tại sao phải ẩn config quan trọng trong chế độ debug Laravel
Như chúng ta đã tìm hiểu trong các bài trước 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ì Laravel sẽ report lỗi là gì, ở đâu, thông tin request, env,...
Và đôi khi trong 1 số trường hợp APP_KEY, DATABASE,user, password ... đều hiện lên rất không tốt cho bảo mật. Thật may mắn Laravel cung cấp cho chúng ta cách ẩn nó đi một cách đơn giản.
2. Ẩ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é.
3. Lời kết.
Thực tế việc ẩn config quan trọng trong chế độ debug Laravel chỉ là một việc rất nhỏ, nhỏ đến nỗi nhiều người quên mất nhưng trong một số trường hợp nó lại rất quan trọng đấy các bạn ạ. Và cuối cùng bạn cần nhớ là luôn luôn tắt debug mode trong môi trường production nhé!