Clickjacking-Schutz in Drupal konfigurieren
X-Frame-Options in Drupal einrichten — per seckit Clickjacking-Tab, EventSubscriber oder .htaccess. Verhindert, dass Ihre Website in fremden iframes eingebettet wird.
Clickjacking-Schutz in Drupal
X-Frame-Options verhindert, dass Ihre Website in fremden <iframe>-Elementen eingebettet wird. Ohne diesen Schutz können Angreifer Ihre Seite unsichtbar über einer anderen Seite platzieren und Benutzer zu ungewollten Klicks verleiten (Clickjacking). Der Header bringt 10 von 166 Punkten im Wolf-Agents Web Security Check.
In Drupal ist seckit die schnellste Methode — ein Radio-Button im Clickjacking-Tab genügt. Alternativ setzen Sie den Header per EventSubscriber oder .htaccess. Für maximalen Schutz kombinieren Sie X-Frame-Options mit frame-ancestors in der Content Security Policy.
Implementierung
seckit bietet den schnellsten Weg — ein Radio-Button unter dem Clickjacking-Tab. SAMEORIGIN erlaubt das Einbetten nur von der eigenen Domain, DENY verbietet das Einbetten komplett.
# seckit: /admin/config/system/seckit → Tab "Clickjacking"
# Optionen:
○ Disabled
● SAMEORIGIN (empfohlen)
○ DENY
# Speichern → drush cr <?php
// modules/custom/security_headers/src/EventSubscriber/XFrameSubscriber.php
namespace Drupal\security_headers\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
class XFrameSubscriber implements EventSubscriberInterface {
public static function getSubscribedEvents() {
return [KernelEvents::RESPONSE => ['onResponse', 0]];
}
public function onResponse(ResponseEvent $event) {
$response = $event->getResponse();
$response->headers->set('X-Frame-Options', 'SAMEORIGIN');
}
} # .htaccess — X-Frame-Options
<IfModule mod_headers.c>
Header always set X-Frame-Options "SAMEORIGIN"
</IfModule> Verifizierung
Cache leeren und den Header per curl prüfen.
# Cache leeren und Header prüfen
drush cr
curl -sI https://ihre-domain.de | grep -i x-frame-options
# Erwartete Ausgabe:
# x-frame-options: SAMEORIGIN Häufige Fehler
seckit überschreibt manuell gesetzte Header
Wenn seckit den Clickjacking-Schutz aktiviert hat und Sie gleichzeitig einen EventSubscriber nutzen, können doppelte Header entstehen. Deaktivieren Sie eine der beiden Methoden.
drush cr vergessen
Nach seckit-Konfigurationsänderungen ist ein drush cr zwingend erforderlich. Der Internal Page Cache liefert sonst den alten Header aus.
DENY bricht eigene iframes
Wenn Ihre Website eigene Inhalte per iframe einbettet (z.B. für Print-Vorschauen), bricht DENY diese Funktion. Nutzen Sie stattdessen SAMEORIGIN.
Compliance-Relevanz
Wie steht Ihre Domain bei Clickjacking-Schutz?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.