基于 SOC 职业分类
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tools-only/X-Skills --skill typo3-security-php84命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
Index of Build Systems Skills
Coordination patterns for distributed dataflow systems including barriers, epochs, and distributed snapshots
Windowing, sessionization, time-series aggregation, and late data handling for streaming systems
| name | typo3-security-php84 |
| description | PHP 8.4 security considerations for TYPO3. New security features and potential vulnerabilities. |
| version | 1.0.0 |
| php_compatibility | 8.4+ |
| typo3_compatibility | 13.0 - 14.x |
| related_skills | ["typo3-security","php-modernization"] |
| triggers | ["security php 8.4","php84 security"] |
Compatibility: PHP 8.4+, TYPO3 v13.x and v14.x
Related Skills:
- typo3-security - Main security guide
- php-modernization/SKILL-PHP84 - PHP 8.4 features
<?php
declare(strict_types=1);
// Prevent external modification of sensitive data
final class UserSession
{
public private(set) string $sessionId;
public private(set) \DateTimeImmutable $createdAt;
public private(set) bool $authenticated = false;
public function authenticate(string $token): void
{
if ($this->validateToken($token)) {
$this->authenticated = true;
}
}
}
// External code cannot bypass authentication
$session = new UserSession();
$session->authenticated = true; // ❌ Error!
<?php
declare(strict_types=1);
final class ApiRequest
{
public string $endpoint {
set (string $value) {
// Validate and sanitize on assignment
if (!str_starts_with($value, '/api/')) {
throw new \InvalidArgumentException('Invalid API endpoint');
}
$this->endpoint = $value;
}
}
public array $parameters {
set (array $value) {
// Sanitize all parameters
$this->parameters = array_map(
fn($v) => is_string($v) ? htmlspecialchars($v, ENT_QUOTES) : $v,
$value
);
}
}
}
<?php
declare(strict_types=1);
final readonly class SecurityContext
{
public function __construct(
public string $userId,
public array $permissions,
public \DateTimeImmutable $validUntil,
) {}
public function hasPermission(string $permission): bool
{
return in_array($permission, $this->permissions, true);
}
}
<?php
declare(strict_types=1);
final class PermissionChecker
{
/**
* @param string[] $requiredPermissions
* @param string[] $userPermissions
*/
public function hasAllPermissions(
array $requiredPermissions,
array $userPermissions
): bool {
// PHP 8.4: Check all required permissions exist
return array_all(
$requiredPermissions,
fn(string $perm) => in_array($perm, $userPermissions, true)
);
}
/**
* @param string[] $dangerousFlags
*/
public function hasAnyDangerousFlag(array $userFlags, array $dangerousFlags): bool
{
return array_any(
$userFlags,
fn(string $flag) => in_array($flag, $dangerousFlags, )
);
}
}
<?php
declare(strict_types=1);
final class AuthService
{
#[\Deprecated(
message: 'Use authenticateWithMFA() for secure authentication',
since: '2.0.0'
)]
public function authenticateBasic(string $user, string $pass): bool
{
trigger_error(
'authenticateBasic() is deprecated. Use MFA.',
E_USER_DEPRECATED
);
return $this->authenticateWithMFA($user, $pass, '');
}
public function authenticateWithMFA(
string $user,
string $pass,
string $mfaToken
): bool {
// Secure implementation
}
}
readonly for immutable security contexts#[\Deprecated]This skill is part of the webconsulting.at TYPO3 skills collection.