Laravel Tutorials

Laravel SMTP Crack

Published
Laravel SMTP Crack image

Spammers have one goal, to send as much spam as cheaply as possible with good IPs that are not blocked, and we've been hearing more and more reports of Laravel apps getting their SMTP credentials hacked and then the attackers using those to send junk.

This is not related to any vulnerability in Laravel itself. The issue is coming from improper server setups or not turning off debug mode.

Hide your .env file

Laravel ships with a .env file that holds many configuration variables, including your database information and your mail server details; if this file becomes web-accessible, anyone can get your sensitive data and use those credentials.

By default, the directory structure of a default Laravel app has a public folder and that and only that should web-accessible.

In most situations, following the documentation on deployments section will set this up probably for you.

I've seen the majority of issues when developers try to install in a subdirectory and accidentally leave the .env file exposed. So double-check that for one, and I would highly suggest not installing it in a subdirectory unless you understand what you are doing. Instead, maybe consider using a subdomain.

Turn off debug mode

When you install a brand new Laravel app, debug mode is turned on for local development. Debug mode is beneficial for providing extra debugging tools and increased logs to help you develop new features and uncover potential problems. Then once you are ready to deploy, you need to change this setting and turn it off. It's helpful to have separate configuration files for your production environments, including leaning on configuring environment variables where you deem appropriate instead of adding config to a .env file.

APP_DEBUG=false

With it left on, an attacker could figure out a way to get your app to generate an error, and then it might expose private credentials. The documenation outlines it in bold because it's super important:

In your production environment, this value should always be false. If the variable is set to true in production, you risk exposing your application's end users' sensitive configuration values.

Consider Using Laravel Forge

If you are not familiar with setting up servers, please consider using Laravel Forge, a first-party professional service for server management by the creators of Laravel. Forge takes the pain out of provisioning servers and fine-tunes them for Laravel. It also ensures proper application setup to ensure your .env is protected, along with many excellent managed features related to deploying a production Laravel application.

Eric L. Barnes photo

Eric is the creator of Laravel News and has been covering Laravel since 2012.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Laravel Terminal UI for the artisan dev Command image

Laravel Terminal UI for the artisan dev Command

Read article
Pause All Queues and a New artisan dev UI in Laravel 13.25 image

Pause All Queues and a New artisan dev UI in Laravel 13.25

Read article
Laravel monitoring that doesn't bill you by your traffic image

Laravel monitoring that doesn't bill you by your traffic

Read article
Mock PHP Classes in Tests With the Double Library image

Mock PHP Classes in Tests With the Double Library

Read article
Laravel Discount: Coupon Codes, Usage Limits, and Stacking image

Laravel Discount: Coupon Codes, Usage Limits, and Stacking

Read article
Laravel Truss: Live Interactive Database ER Diagrams image

Laravel Truss: Live Interactive Database ER Diagrams

Read article