31 detectors
Cover injection, SSRF, XXE, deserialization, JWT, uploads and data leaks.
Security / PHP + Rust + Go
31 stateless detectors and 4 identity checks block on hit, with logs and an IP blacklist following up.
security-php scans GET, POST, Cookie and file uploads with regex patterns and structural analysis, covering injection, SSRF, XXE, deserialization, JWT and sensitive data leaks.
The identity layer also checks session hijacking, unusual logins, data tampering and brute-force lockout. A hit is blocked with the detector's status code: browsers get a block page, APIs get plain text.
A smiling blue shield holding a magnifying glass, the guard that inspects and blocks attacks on every request.
Block it, and see it.Detect, log and block through one pipeline.
Cover injection, SSRF, XXE, deserialization, JWT, uploads and data leaks.
25 detectors extend one regex base class and run in priority order.
Decode URL, double, fullwidth and HTML entity encoding, then scan again.
Session hijacking, unusual login, data tampering and brute-force lockout.
File, Redis and Cache backends shared by the blacklist and identity checks.
Browsers receive an HTML page with Shieldy, while API clients get plain text.
Rust and Go bring the same detection capability.
Attack detection for Rust
32 detectors cover injection, protocol, data and file attacks, plus sessions, throttling, scoring.
Attack detection for Go
36 detectors across 6 attack categories, 3 storage backends, for any Go HTTP framework.
Every version comes from real commit history.
Added a Yii2 request-event bootstrap and a Yii3 PSR-15 integration path.
Added the Shieldy browser block page; regex prefiltering cut a typical form scan from 21.7ms to 6.0ms.
Fixed missed detections from same-name parameters masked across sources and restored broken upload content scanning.
Added session hijacking, unusual login, data tampering and login lockout, with normalization and response headers.
Click an image to enlarge.
Install it, then scan one request.
composer require erikwang2013/security-php$threats = security_scan_current_request();
if (!empty($threats)) {
foreach ($threats as $threat) {
echo "检测到攻击: {$threat->type} - {$threat->detail}\n";
}
}
security_guard();cargo add security-rustuse security_rust::Scanner;
let scanner = Scanner::default();
let results = scanner.scan("<img src=x onerror=alert(1)>");
for r in &results {
println!("[{}] {}", r.severity, r.message);
}go get github.com/erikwang2013/security-goimport (
"fmt"
"github.com/erikwang2013/security-go"
"github.com/erikwang2013/security-go/all"
)
e := security.NewEngine()
all.RegisterAll(e)
r := e.Detect("xss", "<script>alert(1)</script>")
fmt.Printf("检测到: %v, 严重程度: %d\n", r.Detected, r.Severity)Hover and the mood changes.