Livewire Secure Properties π
π View on GitHub: janecodelife/livewire-secure-properties
An elegant, zero-configuration security package for Laravel Livewire 4 that automatically locks all public component properties from client-side manipulation, unless explicitly marked as unlocked.
β Auto-lock properties
β Zero configuration
β Protects against client-side tampering
β Unlock specific properties with #[Unlocked]
β Supports Livewire 4 (Single & Multiple File)
Requirements
- Livewire ^4.0
Installation
You can install the package via composer:
composer require janecodelife/livewire-secure-properties
Usage
1. Single File Components (SFC)
If you are using Livewire 4's native Single File Components layout, you can safely use the #[Unlocked] attribute inside the anonymous class block:
<?php
use Livewire\Component;
use JaneCodeLife\LivewireSecureProperties\Unlocked;
new class extends Component {
// β
Secured: Locked by default, any client-side update will throw a Security Violation exception
public string $role = 'admin';
// π UNLOCKED: Updatable from client side via wire:model or client-side requests
#[Unlocked]
public string $name = 'Jane Joe';
};
?>
<div>
<input type="text" wire:model.live="name">
<p>Name: {{ $name }}</p>
<!-- This would securely block any client-side update attempts -->
<input type="text" wire:model.live="role">
<p>Role: {{ $role }}</p>
</div>
2. Multiple File Components (Class-based)
<?php
use Livewire\Component;
use JaneCodeLife\LivewireSecureProperties\Unlocked;
class UserProfile extends Component
{
// β
Secured: Locked by default, any client-side update will throw a Security Violation exception
public string $role = 'admin';
// π UNLOCKED: Updatable from client side via wire:model or client-side requests
#[Unlocked]
public string $name = 'Jane Joe';
public function render()
{
return view('livewire.user-profile');
}
}
Configuration
If you need to disable the package globally during specific environments (e.g., local debugging), you can add this environment variable to your .env file:
LIVEWIRE_SECURE_PROPERTIES_ENABLED=false
π Support
ββββ Support me by coffee via USDT ββββ
-
Network:
TRX Tron (TRC20) -
Address:
TAFFjBP39Z86weL5dDU1A2251VrgPprDUj
Upcoming π (Stay Tuned!)
The Ultimate Neovim Config for Modern Web & Laravel Devs β‘
I am currently cooking a comprehensive guide and boilerplate configuration on How to turn Neovim into a (Powerful) IDE explicitly optimized for:
- Backend & Frameworks: PHP (Intelephense) & Full Laravel & Livewire Integration (With Preformance)
- Frontend & Tooling: HTML, CSS, JavaScript, TypeScript, and Livewire SFCs
- Speed: Blazing fast autocompletion, lightning-speed code navigation, and fuzzy finding.
Top comments (0)