Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Security Laravel Package

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.

View on GitHub
Deep Wiki
Context7

title: Getting Started with ArtisanPack UI Security

Getting Started

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.

Installation

Install the package via Composer:

composer require ArtisanPackUI/security

Basic Usage

The package provides two ways to use the security functions:

Using the Security Facade

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);

Using Global Helper Functions

// Sanitize user input
$cleanEmail = sanitizeEmail($userEmail);
$cleanText = sanitizeText($userInput);

// Escape output for safe rendering
echo escHtml($userContent);

Common Use Cases

Sanitizing User Input

// 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'
]);

Escaping Output

// 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>

HTML Filtering with Kses

The kses function provides WordPress-style HTML filtering:

$safeHtml = kses($userHtml);
// Allows safe HTML tags while removing potentially dangerous ones

Security Best Practices

  1. Always sanitize input: Clean all user data before processing or storing
  2. Always escape output: Escape data before rendering in HTML, attributes, URLs, JS, or CSS
  3. Use appropriate functions: Choose the right sanitization/escaping function for your context
  4. Layer your security: Combine multiple security measures for defense in depth

Next Steps

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor