XSS (クロスサイトスクリプティング)

ユーザー入力が適切なエスケープなしにHTMLに出力される場合に検出されます。

<?php
class GreetingResource extends ResourceObject
{
    public function onGet(string $name): static
    {
        // 脆弱: XSS
        $this->body['html'] = "<h1>Hello, {$name}!</h1>";

        return $this;
    }
}

修正方法

出力時に適切なエスケープを行ってください:

<?php
class GreetingResource extends ResourceObject
{
    public function onGet(string $name): static
    {
        // 安全: HTMLエスケープ
        $this->body['html'] = "<h1>Hello, " . htmlspecialchars($name, ENT_QUOTES, 'UTF-8') . "!</h1>";

        return $this;
    }
}

Twigなどのテンプレートエンジンは自動エスケープを提供します。コンテキストに応じた適切なエスケープを使用してください(HTML、JavaScript、URL、CSS)。