Download the PHP package robyajo/pasak without Composer

On this page you can find all versions of the php package robyajo/pasak. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package pasak

Pasak (Bulwark)

Run Tests Latest Version on Packagist Total Downloads PHP Version Laravel Version

Pasak (Bulwark) adalah paket keamanan komprehensif (Self-Hosted WAF & Threat Engine) berbasis Headless REST API untuk ekosistem Laravel. Paket ini murni PHP Composer library (Zero-NPM / standar Spatie) yang dirancang khusus untuk memproteksi aplikasi web internal dari serangan siber tingkat lanjut, injeksi payload pentest, eksploitasi webshell, dan brute force tanpa mengikat aplikasi ke template frontend tertentu.

๐Ÿ“š Portal Dokumentasi Resmi Lengkap: Tersedia 25 bab dokumentasi mendalam di direktori documents/index.html.


๐ŸŒŸ Fitur Utama

  1. Self-Hosted WAF & Zero-Tolerance Threat Detection:

    • Deteksi instan tanpa batas ambang (zero-tolerance) untuk null-byte upload (.php%00.jpg), ekstensi ganda (.php.jpg), path traversal (../../../public/), probe file sensitif (.htaccess, .env, .git), dan SSTI canary ({{7*7}}).
    • Deteksi komprehensif untuk SQL Injection, Cross-Site Scripting (XSS), Local File Inclusion (LFI), Command Injection, dan Scanner User-Agents.
    • Pola regex yang diperketat dan kebal terhadap serangan ReDoS (Regular Expression Denial of Service).
  2. Isolasi Perangkat Granular (Device-Level Quarantine):

    • Dukungan isolasi di tingkat perangkat menggunakan device_id (WebRTC/fingerprint) dan local_ip.
    • Memastikan perangkat penyerang terblokir tanpa mengganggu pengguna sah lain yang berbagi alamat IP publik yang sama (seperti kantor atau router Wi-Fi publik).
  3. Tiket Banding & Permohonan Buka Blokir (Appeal Tickets):

    • Endpoint publik REST API bagi pengguna yang terblokir untuk mengajukan tiket permohonan buka blokir beserta status pelacakannya.
    • Antarmuka persetujuan admin yang secara otomatis mencabut karantina IP/perangkat dan memasukkannya ke whitelist.
  4. Multi-Tier Stepped Login Lockout:

    • Sistem pencegahan credential stuffing & brute force berjenjang (1 menit, 5 menit, 15 menit, 1 jam, hingga 24 jam).
    • Pencatatan otomatis riwayat kegagalan otentikasi ke log audit keamanan.
  5. Server Integrity & Webshell Scanner:

    • Pembuatan dan verifikasi baseline hash SHA-256 untuk berkas-berkas aplikasi inti.
    • Pemindaian berkas mencurigakan / webshell (ekstensi ganda, skrip di direktori publik/upload, polyglot media).
    • Fitur penghapusan berkas berbahaya yang aman dengan proteksi path traversal dan berkas sistem vital.
    • Audit konfigurasi keamanan server (APP_DEBUG, secure session cookie, Fortify 2FA).
  6. Streaming Access Log Scanner:

    • Pemindai berkas log mentah Apache / Nginx secara streaming berdaya hemat memori untuk menangkap penyerang yang ditolak oleh web server sebelum request mencapai proses PHP Laravel.
  7. Headless & Arsitektur Terkopel Longgar:
    • 100% REST API JSON murni.
    • Model User dan nama tabel database sepenuhnya dapat dikonfigurasi melalui config/pasak.php.
    • Trait HasSecurityRelations untuk kemudahan integrasi relasi Eloquent.

๐Ÿ“‹ Persyaratan Sistem


๐Ÿš€ Instalasi

1. Pasang Paket via Composer

Penting โ€” jangan pakai @dev di produksi. Menulis composer require robyajo/pasak:@dev memaksa Composer mengambil branch default dev-main (kode yang belum dirilis), bukan tag rilis stabil. Selalu pakai constraint rilis (mis. ^1.0) atau tanpa constraint sama sekali. Flag @dev hanya diperlukan saat mengembangkan paket ini lewat path repository lokal.

2. Publikasikan Aset Otomatis (pasak:install)

Gunakan perintah satu langkah untuk mempublikasikan dan menerapkan seluruh aset keamanan secara otomatis:

Aset yang Didapat Pengguna Setelah Menjalankan Perintah Ini:

  1. ๐Ÿ“„ config/pasak.php: Konfigurasi lengkap WAF, ambang batas blokir, IP whitelist, stepped login lockout, dan log scanner.
  2. ๐Ÿ—„๏ธ database/migrations/ (migrasi konsolidasi + tambahan): Menyiapkan tabel blocked_ips, pasak_logs, login_attempts, ip_unblock_requests, user_logins, trusted_ips, settings, dan allowed_ips (otomatis memindahkan data dari tabel lama security_logs/security_settings bila ada).
  3. ๐ŸŒ nginx.conf: Konfigurasi produksi Nginx Hardened WAF (Dual-zone rate limit, single-PHP execution /index.php, storage sandboxing).
  4. ๐Ÿ›ก๏ธ public/.htaccess: Hardening web server Apache & LiteSpeed (Blokir dotfiles, double extension .php.jpg, file backup dump .sql, dan matikan directory listing).

    Catatan Keamanan: Jika public/.htaccess lama sudah ada, installer otomatis membuat cadangan public/.htaccess.backup-YYYYMMDD_HHMMSS dan menyisipkan aturan keamanan di bawah tanpa merusak rewrite rules aplikasi Anda.

  5. ๐Ÿšซ resources/views/errors/blocked.blade.php: Halaman 403 default yang menampilkan alasan blokir, kode referensi, dan formulir banding yang terhubung langsung ke endpoint publik tiket banding. Dapat disesuaikan sesuai branding aplikasi Anda.
  6. โš™๏ธ Penyematan Variabel ke .env & .env.example: Installer secara otomatis menambahkan blok konfigurasi lengkap disertai penjelasan fungsi berbahasa Indonesia untuk setiap variabel (PASAK_*) langsung ke berkas .env dan .env.example aplikasi Anda.
  7. ๐Ÿ“Š (Opsional) Dashboard monitoring Blade murni: Tampilan monitoring resources/views/pages/pasak/ (100% Pure PHP, jalan di semua aplikasi Laravel tanpa Livewire/Inertia/Vue), wajib login. Dipublikasikan bila Anda menambahkan opsi --with-dashboard (alias: --with-plain, --with-blade).

Opsi Perintah pasak:install:

Opsi Keterangan
--force Menimpa seluruh berkas konfigurasi, migrasi, nginx.conf, public/.htaccess, dan halaman blokir.
--without-nginx Melewatkan pembuatan berkas nginx.conf.
--without-apache Melewatkan pembuatan berkas apache2.conf.
--without-htaccess Melewatkan pembaruan berkas public/.htaccess.
--without-views Melewatkan publikasi halaman blokir errors/blocked.blade.php.
--without-env Melewatkan penyematan variabel konfigurasi ke berkas .env dan .env.example.
--without-user-trait Melewatkan penyematan trait HasSecurityRelations ke model User.
--without-middleware Melewatkan pendaftaran middleware WAF ke bootstrap/app.php / Kernel.
--without-routes Melewatkan publikasi berkas routes/pasak.php dan routes/pasak-api.php.
--without-api Melewatkan pemasangan dukungan API (tanpa rute API).
--without-web Melewatkan pemasangan dashboard web (tanpa halaman/dashboard).
--api-only Jalan pintas: API ya, Web tidak (inti + keamanan saja).
--with-dashboard Mempublikasikan dashboard monitoring Blade murni, jalan di semua aplikasi Laravel (wajib login).
--with-plain Alias dari --with-dashboard.
--with-blade Alias dari --with-dashboard.
--with-htaccess Memaksa pembaruan berkas public/.htaccess.

Publikasi Aset Secara Parsial (Manual):

Jalankan migrasi database:

3. Dashboard Monitoring Blade Murni

Paket ini menyediakan panel monitoring siap pakai Blade murni (100% Pure PHP, tanpa Livewire/Inertia/Vue) yang dapat dipublikasikan langsung ke dalam aplikasi host di prefix /pasak โ€” berjalan di semua aplikasi Laravel:

Perintah tersebut menyalin *`resources/views/pages/pasak/.blade.php** (tujuh halaman + layout dengan CSS/JS mandiri, tanpa build step) beserta konfigurasidashboardpadaconfig/pasak.php`.

Mengaktifkan Dashboard & Wajib Login

Konfigurasi di .env:

Setelah diaktifkan, panel dapat diakses pada /pasak.

๐Ÿ”’ Wajib Login: Seluruh halaman dashboard di prefix /pasak dilindungi oleh middleware web + auth. Pengguna yang belum login otomatis diarahkan ke halaman login. Jika Anda ingin membatasi dashboard khusus untuk administrator, set PASAK_DASHBOARD_ADMIN_ONLY=true di berkas .env.


โš™๏ธ Konfigurasi & Integrasi

1. Tambahkan Trait ke Model User

Buka model App\Models\User.php dan tambahkan trait HasSecurityRelations:

Trait ini menyediakan relasi Eloquent bawaan:

2. Daftarkan Middleware

Pada Laravel 11 / 12 / 13 (bootstrap/app.php)

Pada Laravel 10 (app/Http/Kernel.php)


๐Ÿ“ก Headless REST API Reference

Semua rute REST API didaftarkan secara default dengan prefix /api/pasak (dapat diubah melalui config('pasak.routes.prefix')).

1. Endpoint Publik

Metode URI Deskripsi
POST /api/pasak/unblock-tickets/submit Mengirim permohonan banding pembukaan blokir IP/perangkat
GET /api/pasak/unblock-tickets/check/{ticketNumber} Memeriksa status tiket permohonan banding

Contoh Payload Pengajuan Tiket:

2. Endpoint Pengguna Terautentikasi (auth)

Metode URI Deskripsi
POST /api/pasak/trusted-ips/save-my-ip Menyimpan alamat IP saat ini sebagai IP terpercaya pengguna

3. Endpoint Manajemen Admin (auth + pasak.admin)

Log Keamanan & Analitik Serangan

Metode URI Deskripsi
GET /api/pasak/logs Mendapatkan log ancaman (paginasi, filter event/level/tanggal, statistik, tren 24 jam/7 hari)
DELETE /api/pasak/logs/clear Mengosongkan seluruh log audit keamanan
DELETE /api/pasak/logs/{id} Menghapus satu entri log keamanan tertentu

Daftar Blokir IP & Perangkat

Metode URI Deskripsi
GET /api/pasak/blocked-ips Mendapatkan daftar IP yang diblokir (aktif & kedaluwarsa)
POST /api/pasak/blocked-ips Memblokir IP atau perangkat secara manual
GET /api/pasak/blocked-ips/{id} Melihat detail data pemblokiran
PATCH /api/pasak/blocked-ips/{id}/toggle Mengaktifkan / menonaktifkan status blokir
DELETE /api/pasak/blocked-ips/{id} Mencabut blokir dan menghapus entri

Audit Server & Integritas Berkas

Metode URI Deskripsi
GET /api/pasak/server Laporan komprehensif audit keamanan server & integritas berkas
POST /api/pasak/server/baseline Membuat baseline hash SHA-256 berkas aplikasi baru
DELETE /api/pasak/server/baseline Menghapus baseline integritas
DELETE /api/pasak/server/suspicious-files Menghapus berkas mencurigakan/webshell yang terdeteksi
DELETE /api/pasak/lockouts/{id} Membuka kunci akun yang terkena lockout login berjenjang

Sesi Pengguna & IP Terpercaya

Metode URI Deskripsi
GET /api/pasak/user-sessions Riwayat sesi login seluruh pengguna
GET /api/pasak/user-sessions/realtime Daftar pengguna yang aktif secara real-time
DELETE /api/pasak/user-sessions/{id} Menghapus log sesi pengguna
DELETE /api/pasak/user-sessions/session/{sessionId} Memutus sesi pengguna tertentu (force logout)
DELETE /api/pasak/trusted-ips/{id} Menghapus IP dari daftar terpercaya

Pengelolaan Tiket Banding

Metode URI Deskripsi
GET /api/pasak/unblock-tickets Daftar seluruh tiket permohonan banding
POST /api/pasak/unblock-tickets/{id}/respond Menyetujui atau menolak tiket (buka blokir & whitelist)
DELETE /api/pasak/unblock-tickets/{id} Menghapus arsip tiket

๐Ÿ›ก๏ธ Validation Rules Bawaan

Paket menyediakan aturan validasi siap pakai untuk request form aplikasi Anda:

1. SafeImageFile

Memvalidasi unggahan gambar dan mencegah serangan polyglot image (gambar JPEG/PNG sah yang diinjeksi kode <?php), ekstensi ganda berbahaya, dan SVG bereksekusi JavaScript/XSS:

2. SafeAssetPath

Memvalidasi string path aset gambar/ikon agar terbebas dari path traversal, probe direktori sensitif, dan file .htaccess:


๐Ÿ’ป Perintah Artisan CLI

Paket ini menyertakan perintah Artisan lengkap untuk otomasi di server produksi:

1. Pemindaian Log Akses Web Server (pasak:scan-logs)

Memindai berkas log Apache atau Nginx, mendeteksi pola serangan, dan memblokir IP penyerang secara otomatis:

2. Manajemen Baseline Integritas Berkas (pasak:baseline)

3. Membuka Blokir IP (pasak:unblock-ip)

4. Pembersihan Log Kedaluwarsa (pasak:prune-logs)

5. Pembersihan Data Residu Pentest (pasak:purge-injected-data)

Mendeteksi dan menghapus payload injeksi sisa pengujian keamanan (seperti {{7*7}}, .htaccess, path traversal) dari tabel aplikasi:

6. Pembaruan Otomatis & Sinkronisasi Komponen (pasak:upgrade)

Periksa rilis terbaru dan perbarui package sekaligus sinkronkan migrasi database, rute kustom, dan tampilan dashboard monitoring:

Notifikasi Otomatis: Saat menjalankan php artisan serve atau composer run dev, sistem akan secara otomatis memeriksa versi terbaru dari Packagist/GitHub secara non-blocking dan menampilkan notifikasi di terminal konsol bila versi baru telah dirilis.


๐ŸŒ Konfigurasi Web Server Hardened

Paket ini menyertakan template konfigurasi hardened siap pakai untuk web server Nginx maupun Apache / LiteSpeed / cPanel.

1. Nginx Hardened WAF (nginx.conf)

Diterbitkan via php artisan vendor:publish --tag=pasak-nginx:

  1. Dua Zona Rate Limiting Terpisah:
    • auth_limit: 5 request/menit (burst 5) untuk endpoint sensitif (/login, /register, /forgot-password, /reset-password, dll.).
    • general_limit: 30 request/detik (burst 50) untuk rute umum aplikasi.
  2. Proteksi Aset Statis Vite / Frontend:
    • Direktori /build/ dibebaskan dari rate-limiting agar chunk parallel JS tidak memicu HTTP 429 atau NS_ERROR_CORRUPTED_CONTENT.
  3. Strict Single-PHP Execution:
    • Hanya /index.php yang boleh dieksekusi oleh PHP-FPM. Berkas skrip lain yang berada di direktori publik langsung ditolak dengan HTTP 403.
  4. Pencegahan Double Extension & Ekstensi Berbahaya:
    • Menolak ekstensi ganda (.php.jpg, .phtml.zip, dll.).
  5. Sandboxing Direktori Storage / Upload:
    • Folder /storage/ dimatikan dari eksekusi PHP dengan header X-Content-Type-Options: nosniff dan CSP sandbox.
  6. Blokir Dotfiles & Berkas Backup:
    • Menolak akses berkas .env, .git, .htaccess, .sql, .bak, dan .log.

2. Apache & LiteSpeed Hardened (public/.htaccess)

Diterapkan otomatis via php artisan pasak:install atau php artisan vendor:publish --tag=pasak-htaccess:

  1. Front Controller & Authorization Header: Routing Laravel standar, pemeliharaan header Authorization dan X-XSRF-Token.
  2. Blokir Akses ke Dotfile (<FilesMatch "^\.">):
    • Menutup akses ke .htaccess, .env, .git, .htpasswd (kompatibel Apache 2.4+ Require all denied dan Apache 2.2 Deny from all).
  3. Blokir Serangan Ekstensi Ganda (Double Extension Webshell):

    • Menolak berkas berbahaya seperti shell.php.jpg atau trik null-byte wne.php%00.jpg:
  4. Blokir Berkas Backup, Dump Database, dan Log Sensitif:
    • Menutup berkas .sql, .bak, .old, .orig, .save, .swp, .log, .ini, .conf, .yml, .yaml.
  5. Matikan Directory Listing:
    • Options -Indexes mencegah browser menampilkan daftar berkas di dalam folder publik/storage.

๐Ÿงช Menjalankan Pengujian (Testing)

Paket ini dilengkapi dengan pengujian menyeluruh menggunakan Pest PHP dan Orchestra Testbench:

Hasil uji: 115 passed (478 assertions) 100% Passed mencakup:


โค๏ธ Dukungan (Support)

Jika paket ini bermanfaat untuk proyek Anda, Anda dapat mendukung pengembangan berkelanjutannya melalui:

Dukungan Anda sangat membantu agar paket ini tetap terawat, aman, dan terus diperbarui. Terima kasih! ๐Ÿ™


๐Ÿ“„ Lisensi

Paket ini dilisensikan di bawah lisensi terbuka MIT.


All versions of pasak with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2|^8.3|^8.4|^8.5
guzzlehttp/guzzle Version ^7.8|^8.0
illuminate/auth Version ^10.0|^11.0|^12.0|^13.0
illuminate/console Version ^10.0|^11.0|^12.0|^13.0
illuminate/database Version ^10.0|^11.0|^12.0|^13.0
illuminate/http Version ^10.0|^11.0|^12.0|^13.0
illuminate/routing Version ^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
illuminate/validation Version ^10.0|^11.0|^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package robyajo/pasak contains the following files

Loading the files please wait ...