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:
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';
};
?>
Name: {{ $name }}
Role: {{ $role }}
2. Multiple File Components (Class-based)
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.
Sumber Rujukan:
- Artikel asal dari Dev.to Laravel
- Published on haqis.com