Skip to content
Featherwebs

Use Security Headers

HTTP headers can be used to provide additional security for your Laravel application. Here are some recommended security headers:

  • X-XSS-Protection: Enables the browser’s built-in cross-site scripting (XSS) protection.

  • X-Content-Type-Options: Prevents content sniffing, which can lead to cross-site scripting (XSS) attacks.

  • X-Frame-Options: Prevents clickjacking by disabling framing of the web page.

  • Referrer-Policy: Controls the information that is sent in the Referer header.

To set security headers in your Laravel application, you can add them to your web server configuration or use a middleware to set them. Here’s an example middleware that sets some basic security headers:

namespace App\Http\Middleware;

use Closure;

class SecurityHeaders
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        $response->header('X-XSS-Protection', '1; mode=block');
        $response->header('X-Content-Type-Options', 'nosniff');
        $response->header('X-Frame-Options', 'SAMEORIGIN');
        $response->header('Referrer-Policy', 'same-origin');

        return $response;
    }
}

Add the SecurityHeaders middleware to the $middleware array in app/Http/Kernel.php:

protected $middleware = [
    // ...
    \App\Http\Middleware\SecurityHeaders::class,
];