我可能用错了,问题是这样的:
我有这样的回显到页面的php代码,如下所示:
<?php echo "<h1>" . htmlspecialchars($array['text']) . "</h1>" ?>
该变量以类似html的结构从数据库中回显
echo "<h1> Hello </h1>"
可以正常工作,但是一旦我回显类似"> text here"
的内容,一切都会中断。文本出现在正文的开头,我实际上可以将JS注入其中,然后..就可以了。
我不知道我在做什么错,我使用htmlspecialchars
是错了还是其他地方的问题?
答案 0 :(得分:2)
使用以下内容:
htmlspecialchars($string, ENT_COMPAT,'ISO-8859-1');
这使htmlspecialchars
使用ISO-8859-1
编码,我认为这是您使用的编码。
根据htmlspecialchars docs,关于名为encoding
的第三个参数:
如果省略,则编码的默认值根据使用的PHP版本而有所不同。在PHP 5.6和更高版本中,default_charset配置选项用作默认值。 PHP 5.4和5.5将使用UTF-8作为默认值。 PHP的早期版本使用ISO-8859-1。