php - MySQL how to properly deal with rows containing code/cross-site-scripting? -
assuming parse logfile has been submitted user , store parsed data in mysql database.
now if user mean enough submit logfile contains line similiar nickname=<script>alert(hello);<script>
. parser grab behind equals sign , execute insert nicknames (name) value ('<script>alert(hello);</script>')
.
i have tried around bit , figured mysqli_real_escape_string()
preventing line in logfile such nickname=' , 1 = 2
breaking query escaping '
. assumed deal <script>
/<
/>
, other codes/characters, apparently wrong.
in case mentioned above, when user submits logfile containing line nickname=<script>alert(hello);<script>
, nicknames.name
column hold value <script>alert(hello);<script>
.
later values read table , displayed, 1 nickname per row in <table>
on website. ofcourse won't display "nickname" in case; cross-site-script being executed. instead of table row containing nickname message box pops saying 'hello'.
is there common way prevent cross-site-scripting function similiar mysqli_real_escape_string()
? proper solution problem, or maybe best?
ofcourse strip off <
, >
before insert
ing column, prefer way display nickname <script>
tag in it, in table.
regards
you can use htmlspecialchars
convert html tags syntax respective entities. cause literal value of <script>alert('name');</script>
displayed rather being interpreted script block
Comments
Post a Comment