fix(security): headingLevel prüfen, überschreibende Tools kennzeichnen, Meta-Tools auf lit/ beschränken
- Divi-Vollformat: headingLevel nur h1 bis h6 (ValueCleaner, StoredNodeGuard, ShortformWriter); sonst ließ sich für Konten ohne unfiltered_html ein Skript-Element erzeugen. - content-update, divi-update und wp-settings-update sind destructive, damit MCP-Clients nachfragen. - mcp-adapter/execute-ability und get-ability-info nehmen auf dem OAuth-Server nur lit/-Abilities an. - release-publish.sh übergibt den Gitea-Token per Konfigurationsdatei statt als curl-Argument. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
194fd9e183
commit
165e61d7fe
@@ -294,6 +294,11 @@ final class StoredNodeGuard
|
||||
return 'Steuerzeichen im Wert – ' . self::BUILDER_ONLY . '.';
|
||||
}
|
||||
|
||||
// Security audit 2026-11 (B1): the rule of ValueCleaner; any other stored heading tag would become an element.
|
||||
if ($key === 'headingLevel' && preg_match(ValueCleaner::HEADING_LEVEL, $value) !== 1) {
|
||||
return 'headingLevel muss h1 bis h6 sein – ' . self::BUILDER_ONLY . '.';
|
||||
}
|
||||
|
||||
$kind = $this->cleaner->kindAt($module, $path, $subName, $key);
|
||||
if (VariableRef::contains($value)) {
|
||||
return $this->referenceProblem($value, $kind === ValueKind::Url);
|
||||
|
||||
Reference in New Issue
Block a user