artisanpack-ui/security
Core Laravel security toolkit for ArtisanPack UI: sanitization, escaping (Laminas Escaper), KSES filtering, validation rules, security/CSP middleware, CSP builder with nonce & reporting, rate limiting, audit/scan commands, and testing helpers.
The ArtisanPack UI Security package provides essential security functions for Laravel applications, specifically designed for the Digital Shopfront CMS. It offers comprehensive data sanitization and output escaping functions to protect against common web vulnerabilities.
Install the package via Composer:
composer require ArtisanPackUI/security
The package provides two ways to use the security functions:
use ArtisanPackUI\Security\Facades\Security;
// Sanitize user input
$cleanEmail = Security::sanitizeEmail($userEmail);
$cleanText = Security::sanitizeText($userInput);
// Escape output for safe rendering
echo Security::escHtml($userContent);
// Sanitize user input
$cleanEmail = sanitizeEmail($userEmail);
$cleanText = sanitizeText($userInput);
// Escape output for safe rendering
echo escHtml($userContent);
// Clean email addresses
$email = sanitizeEmail('goodÂ[@bad](https://github.com/bad).com'); // Returns: 'good@bad.com'
// Clean text content
$text = sanitizeText('<p>Hello World</p>'); // Returns: 'Hello World'
// Sanitize integers
$number = sanitizeInt('42.7'); // Returns: 42
// Clean arrays recursively
$data = sanitizeArray([
'name' => '<script>alert("xss")</script>John',
'email' => 'john@example.com'
]);
// In Blade templates
<div>{{ escHtml($userContent) }}</div>
<img src="image.jpg" alt="{{ escAttr($userTitle) }}">
<a href="{{ escUrl($userUrl) }}">Link</a>
// In JavaScript contexts
<script>
var userData = {!! escJs($jsonData) !!};
</script>
// In CSS contexts
<style>
.user-class { content: {{ escCss($userContent) }}; }
</style>
The kses function provides WordPress-style HTML filtering:
$safeHtml = kses($userHtml);
// Allows safe HTML tags while removing potentially dangerous ones
How can I help you explore Laravel packages today?