阻止站点从数据库运行javascript代码

时间:2019-03-10 05:52:58

标签: php html mysql

因此,我使用浏览器的输入对php函数htmlspecialchars()进行了实验。它有效,并且从数据库回显的值未运行脚本。但是,如果我确实将脚本直接输入到phpMyAdmin中的数据库中,则代码为:

<?php echo htmlspecialchars($row['fname'], ENT_QUOTES | ENT_HTML5, 'UTF-8');?>

还有

<?php echo  htmlspecialchars($row['lname']);?>

仍然在浏览器上运行我直接放入数据库中的javascript。它是否与数据库排序规则类型有关?

1 个答案:

答案 0 :(得分:0)

JavaScript(从PHP / MySQL的角度来看)就像其他任何字符串一样。

您需要知道何时/以什么方式如何 过滤 ,以及何时/以什么方式如何 转义

过滤器:在将插入数据库之前,正在过滤出恶意字符串。像功能strip_tags()

转义:转义字符(例如"'<>等) >打印出可能会给您带来不良输出的结果。像功能htmlspecialchars()


警告

将JavaScript存储在DB中然后将其输出到浏览器很容易,但同时也很危险!确保只允许管理员用户这样做。