gpt4 book ai didi

php echo htmlspecialchars

、超链接、图像等问题。需要解决方案

转载 作者:行者123 更新时间:2023-11-29 00:10:43 26 4
gpt4 key购买 nike

从mysql中获取数据。然后回显 echo htmlspecialchars( $content['MainText'] , ENT_NOQUOTES, "UTF-8"); .

试图在没有 htmlspecialchars 的情况下回显像 <script> alert('Hello');</script> 这样的 javascript并看到弹出框。所以回显没有htmlspecialchars是不好的.

但是用htmlspecialchars无法正确显示超链接和图像以及 <h2> , <span>等也是 Not Acceptable 。

目前尝试替换一些字符,例如

$content_main_text_modified = 
str_replace(
array( '&lt;br/&gt;', '&lt;br&gt;', '&lt;/a&gt;', "&gt;", '&lt;a', '&lt;div', '&lt;img', '&lt;/div', '&lt;h2', '&lt;/h2', 'amp;amp;', '&lt;span', '&lt;/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;

我的想法是不更换鞋底&lt;< , 而不是替换 &lt;一起br , a , <h2 .所以如果在 mysql 中会像 <script>它不会执行。

想检查(获取意见)我的想法是否安全?可能还有一些建议。

最佳答案

我认为一个不同的想法是首先停止以这种方式存储它,以便您可以回显它。你指的是 xss 攻击,有人可以输入 JavaScript,然后可以在另一个用户的浏览器上执行查看此链接以获取有关 xss 的更多详细信息 click here .

至于删除它的方法,我会做的是对推算数据进行某种形式的验证,有很多方法可以做到这一点,我建议阅读上面的链接,这会让你知道如何停止它,意味着你可以做一个简单的 echo 。像这样进行验证也有助于防止 sql 注入(inject)攻击,尽管这需要做更多的工作。

这不会每次都有效,有些人还建议您使用 htmlspecialchars,但是当您使用 html 时,这会导致问题,如您所知,您只需要尽最大努力,没有系统可以阻止一切。

不知道你在做什么,这是不可能的,但你可能会发现使用某种模板引擎很有用,这样 HTML 就从代码中分离出来,你可以使用函数 htmlspecialchars(),因为您可以将文本传递给模板。

关于php echo htmlspecialchars <h2>、超链接、图像等问题。需要解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25231942/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com