Ich teste eine Seite, die ich in PHP für HTML-Injektionen gemacht habe, aber es funktioniert nicht so, wie ich es erwartet hatte.HTML-Injektion: kann Javascript nicht in Textarea einfügen
Ich versuche
<div onmouseover="alert(1)" style="position:fixed;left:0;top:0;width:9999px;height:9999px;">
</div>
in einem Textbereich einzufügen. Serverseitig möchte ich $ _GET nur mit einem var_dump anzeigen, aber es kommt nicht einmal dazu: Wenn ich auf die Schaltfläche klicke, bringt es mich zurück zur Homepage und #3377832596384266514
wird zur URL hinzugefügt. Ich bekomme keinen Fehler in PHP, vielleicht ist es ein Serverproblem (Apache 2.4).
Ich vermute ein Teil des Stacks ist defensiv, wie wenn Sie javascript:
zu einer URL hinzufügen und der Browser wird es loswerden, aber ich weiß nicht, wo ich suchen soll. Ich habe auch versucht,
<script>alert(foo);</script>
und andere Variationen, aber dann die <
und einige andere Zeichen entfernt werden.
test.php
<!doctype html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
<form method="get" action="select.php">
<p>
<label for="select">Words
<textarea id="select"
name="select"
cols="50"
rows="1"
maxlength="100"
required
autofocus></textarea>
</label>
</p>
<p>
<button>Send</button>
</p>
</form>
</body>
</html>
select.php
<?php
var_dump($_GET);
Bearbeiten: Textarea anstelle von Eingabe.
Edit: den gesamten Code hinzugefügt.
Manchmal tut Ihr Server das. Es wird also abgefangen und entfernt, noch bevor Ihr PHP es sieht, geschweige denn den Browser. – durbnpoisn
Sie müssen Ihren PHP-Code zeigen, wenn wir eine Chance haben, herauszufinden, was falsch ist. – Barmar
@durbnpoisn Ja das würde es erklären, aber ist es Standard? Wird es durch eine Konfigurationsdatei verursacht? – kevinlelo