php echo htmlspecialchars与<;h2>;,超链接、图像等需要解决
从mysql获取数据。 然后用php echo htmlspecialchars与<;h2>;,超链接、图像等需要解决,php,mysql,Php,Mysql,从mysql获取数据。 然后用echo htmlspecialchars($content['MainText'],ENT_NOQUOTES,“UTF-8”) 尝试在没有htmlspecialcharsjavascript类alert('Hello')的情况下进行回显和锯弹出框。因此,如果没有htmlspecialchars的话,回音是不好的 但是使用htmlspecialchars无法正确显示超链接和图像,而且,等也不可接受 目前,他试图替换一些字符,如 $content_main_text_
echo htmlspecialchars($content['MainText'],ENT_NOQUOTES,“UTF-8”)代码>
尝试在没有htmlspecialchars
javascript类alert('Hello')的情况下进行回显代码>和锯弹出框。因此,如果没有htmlspecialchars
的话,回音是不好的
但是使用htmlspecialchars
无法正确显示超链接和图像,而且
,
等也不可接受
目前,他试图替换一些字符,如
$content_main_text_modified =
str_replace(
array( '<br/>', '<br>', '</a>', ">", '<a', '<div', '<img', '</div', '<h2', '</h2', 'amp;amp;', '<span', '</span' ),
array( '<br/>', '<br>', '</a>', ">", '<a', '<div', '<img', '</div', '<h2', '</h2', '', '<span', '</span' ),
( htmlspecialchars( $content['MainText'] , ENT_NOQUOTES, "UTF-8") )
);
echo $content_main_text_modified;
$content\u main\u text\u modified=
str_替换(
数组('br/'、'br'、'/a'、''、'a'、'div'、'img'、'/div'、'h2'、'/h2'、'amp;amp;'、'span'、'/span'),
数组(“
”、“
”、“,”>”我认为一个不同的想法是首先停止以这种方式存储它,这样您就可以响应它。您所指的是一种xss攻击,有人可以输入JavaScript,然后在另一个用户浏览器上执行。有关xss的详细信息,请查看此链接
至于删除它的方法,我要做的是对输入数据进行某种形式的验证。有很多方法可以做到这一点,我建议阅读上面的链接,这会让你知道如何阻止它,意味着你可以只做一个简单的回显。这样做也有助于防止sql注入攻击,尽管这会需要更多的工作
这不会每次都起作用,有些人还建议您使用htmlspecialchars,但当您使用html时,这会导致问题,正如您所知,您只需尽最大努力,任何系统都无法阻止一切
不知道自己在做什么是不可能的,但你可能会发现使用某种模板引擎很有用,这样HTML就可以从代码中分离出来,你可以使用函数htmlspecialchars()
,就像你可以将文本发送到模板一样。使用strip\u标记($content['MainText']“,”看一看HTML.Allowed指令;您可以在其中设置允许的标记。我有一个(唯一)显示内容的页面。它基于$\u服务器['QUERY\u STRING']
获取mysql。有时以文本形式(以输入形式,将数据发送到mysql)必须添加超链接或设置。所有输入都进入mysql…目前不知道如何存储输入…为MySelf创建了类似CMS的东西您仍然可以在mysql中存储数据您需要做的是添加一些初始验证如果您使用超链接,您可以轻松地使用JavaScript和PHP在savin之前检查它是否是有效链接至于有点棘手的HTML,让我考虑一下。我能问一下为什么要将HTML添加到数据库中吗
$content_main_text_modified = htmlspecialchars($content['MainText']);
$content_main_text_modified = reg_replace('#<(/?(?:a|h2|div|span|br|img))>#', '<$1>', $content_main_text_modified);