Php security
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/php-security
PHP security standards for database access, password handling, and input validation. Use when securing PHP apps against SQL injection, XSS, or weak password storage. (triggers: **/*.php, pdo, password_hash, htmlentities, filter_var)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill php-securityAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.1 KB, 502 tokens by cl100k_base, as published. Nobody here has run it
PHP Security
Priority: P0 (CRITICAL)
Structure
src/
└── Security/
├── Validators/
└── Auth/
Implementation Guidelines
- Prepared Statements: Use PDO with Parameterized Queries:
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id'); $stmt->execute([':id' => $id]);. NEVER concatenate user input into SQL strings. - Password Hashing: ALWAYS use
password_hash()withPASSWORD_ARGON2ID(PHP 7.4+) orPASSWORD_BCRYPT. - Auth Verification: Use
password_verify(). Usepassword_needs_rehash()to upgrade legacy hashes. Implement Rate Limiting and MFA where appropriate. - XSS Escaping: Use
htmlentities($userInput, ENT_QUOTES | ENT_HTML5, 'UTF-8')orhtmlspecialchars()on all user output. Prefer Twig or Blade for auto-escaping. - CSRF Protection: Mandate
CSRF tokensfor all state-changing requests (POST,PUT,PATCH,DELETE). - Input Validation: Use
filter_var($email, FILTER_VALIDATE_EMAIL)orfilter_var($url, FILTER_VALIDATE_URL). Always Whitelist allowed values. - File Security: RESTRICT file uploads by MIME type and extension. Store uploads outside the public root.
- Session Safety: Configure
session.cookie_httponly = 1,session.cookie_secure = 1, andsession.samesite = "Lax". - Header Security: Enforce
Content-Security-Policy (CSP),X-Frame-Options: DENY, andX-Content-Type-Options: nosniff.
Anti-Patterns
- No SQL string concatenation: Use PDO prepared statements only.
- No MD5/SHA1 for passwords: Use
password_hash($password, PASSWORD_ARGON2ID). - No raw
$_GET/$_POST: Validate all input withfilter_var()first. - No production error display: Log to file; never show to users.
References
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.