Frage

Stellen Sie sich vor, diese einfache Form

<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
    <fieldset>
        <legend>Contact Me</legend>
        <label for="email">Email:</label>
        <input type="text" name="email" id="email" />
        <button type="submit">Submit</button>
    </fieldset>
</form>

Nun stellen wird zugegriffen über form.php?hack=" onsubmit="alert('xss')

Die Ausgabe, wenn ich sehe Quelle

<form action="/things/?hack=%22%20onsubmit=%22alert(%27xss%27)" method="post">

Was ist das Codieren - ist es der Browser oder PHP?

Außerhalb der Neugier, ich echo immer $_SERVER['REQUEST_URI'] innerhalb htmlspecialchars().

War es hilfreich?

Lösung

Dies wird durch den Browser erfolgt, wenn Sie unter einem PHP-Framework sind, auch einige von ihnen verändern. Es ist ähnlich dem, was Sie PHP urlencode Funktion kann verwendet wird.

Andere Tipps

Wenn Sie form.php?hack=" onsubmit="alert('xss') in der Adresszeile Ihres Browsers eingeben, wandelt er es form.php?hack=%22%20onsubmit=%22alert(%27xss%27) als die " und Leerzeichen in einem URI nicht erlaubt. So müssen sie verschlüsselt werden. Die ' ist in URIs erlaubt aber auch codiert werden kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top