4 ms·
Typing `<script>alert(0)</script>` into the chat box shows the injection hazard. In fact this is caused by using jQuery, which (inexcusably) runs embedded scri
by inimino 9y ago
Typing `<script>alert(0)</script>` into the chat box shows the injection hazard.
In fact this is caused by using jQuery, which (inexcusably) runs embedded scripts when adding HTML to the page. The simplest solution to this entire class of bugs is simply to not use jQuery and use the better-designed DOM methods instead, which is probably a more modern approach anyway.
Using innerHTML would solve the script injection, but you probably want to use innerText or createTextNode instead, since supporting HTML tags in a basic chat app seems more bug than feature.
The server side should be safe already as it looks like there’s no persistence.
- foota 9y agoinnerHtml wouldn't eliminate xss vectors though, things like load=something could bypass this.
- inimino 9y agoYes, it's not completely safe. In a beginner tutorial, if you allow arbitrary HTML you should state that it shouldn't be done that way in a real app.
- shamdasani 9y agoThanks for the heads up. DOM methods are more clear and better. Will update the tutorial soon.