Ich arbeite derzeit auf einer Seite, wo ich den Benutzer benötigen, um mehrere Variablen einzugeben, die bei der Übergabe dann auf der ganzen Seite angezeigt werden. .XSS Javascript, Exploit Überprüfung
Problem ist, muss es 100% sicher Code sein, und während ich bin ok PDO/MySQL etc. mit Hilfe von Javascript nicht etwas, das ich in sehr fließend bin
Im Moment habe ich folgendes:
<script language="JavaScript">
function showInput() {
document.getElementById('var1').innerText =
document.getElementById("user_var1").value;
document.getElementById('var2').innerText =
document.getElementById("user_var2").value;
}
</script>
mit dem html
<form>
your variable 1 is = <input type="text" name="message" id="user_var1"><br />
your variable 2 is = <input type="text" name="message" id="user_var2"><br />
</form>
<input type="submit" onclick="showInput();">
<p>var1 = <span id='var1'></span></p>
<p>var2 = <span id='var2'></span></p>
Von dem, was ich sagen kann, ".innerText" verwenden, sollten alle html etc stoppen verwendet werden, und ich habe mit
getestet<script>alert(document.cookie);</script>
was dazu führt, dass oben nur so gedruckt wird, wie es ist (nicht ausgeführt).
z.B.
your variable 1 is = <script>alert(document.cookie);</script>
Gibt es noch etwas, das Sie empfehlen, um sicherzustellen, dass es sicher ist (XSS oder anders)? Nur Zeichen, die eingegeben werden sollten müssen/und AZ 0-9
Vielen Dank im Voraus :)
bearbeiten
Nur um zu klären, ist der einzige Code, was oben ist, wird die Seite nicht ziehen Daten aus einer Datenbank etc (was Sie oben sehen, ist praktisch die vollständige PHP-Seite, nur fehlt die HTML-Kopf Körper Tags usw.).
was meinst du mit '100% sicherem Code' JS kann nicht sicher sein, es läuft auf einem Rechner, über den du keine Kontrolle hast. Die einfachste "Attacke" wäre hier das Überschreiben von 'showInput' mit dem, was ich will, oder wenn ich das nur deaktivieren möchte, entferne die IDs von den Knoten, sortiere mit der Schaltfläche oder ändere den Clickhandler auf der Schaltfläche. Und das fängt gerade erst an, also was meinst du mit Sicherheit? – Thomas
Zugegeben 100% sicher war wahrscheinlich der falsche Begriff zu verwenden. Damit meine ich, der Benutzer wäre nicht in der Lage, etwas in das Hosting zu injizieren oder hinzuzufügen oder es zum Durchlaufen eines anderen Verzeichnisses zu verwenden (z. B. unter Verwendung von ../../../). z.B. Bei einigen Seiten, die mysql verwenden, musste ich zu PDO usw. wechseln, um die Injektionen zu stoppen. – user6796243
Das ist, was ich sage, der Benutzer muss nur F12 im Browser drücken und kann so ziemlich alles ausführen * was er/sie will * in Ihrer Seite. Wie 'showInput = null;' oder 'document.getElementById ('var1'). InnerHTML =" ... was auch immer ... "' oder ... Sie haben (fast) überhaupt keine Kontrolle. – Thomas