因此,我使用浏览器的输入对php函数htmlspecialchars()
进行了实验。它有效,并且从数据库回显的值未运行脚本。但是,如果我确实将脚本直接输入到phpMyAdmin中的数据库中,则代码为:
<?php echo htmlspecialchars($row['fname'], ENT_QUOTES | ENT_HTML5, 'UTF-8');?>
还有
<?php echo htmlspecialchars($row['lname']);?>
仍然在浏览器上运行我直接放入数据库中的javascript。它是否与数据库排序规则类型有关?
答案 0 :(得分:0)
JavaScript(从PHP / MySQL的角度来看)就像其他任何字符串一样。
您需要知道何时/以什么方式如何 过滤 ,以及何时/以什么方式如何 转义 。
过滤器:在将插入数据库之前,正在过滤出恶意字符串。像功能strip_tags()
转义:转义字符(例如"
,'
,<
,>
等) >打印出可能会给您带来不良输出的结果。像功能htmlspecialchars()
将JavaScript存储在DB中然后将其输出到浏览器很容易,但同时也很危险!确保只允许管理员用户这样做。