[英]Blocking HTML and Javascript from being displayed on my site
我正在这个新的社交网站上工作。 它的各种功能之一是发布。 您可以发布到 Facebook 和我的网站,或 Twitter 和我的网站。 话虽如此,当我测试 sql 注入时,我忍不住尝试发布 HTML。 当我这样做时,我注意到有哪些方法可以操纵站点,例如,使用元素完全搞砸 CSS 设计,或使用 javascript 将用户重定向到另一个站点。 话虽如此,我想让我的网站为我的用户提供一个安全的环境......而不是一个用于传播计算机病毒、色情和其他可能使某人倾向于远离我的网站的东西的网站。 当我搜索这个主题时,我找到了在将 HTML 提交到数据库之前从 $post 变量中“剥离”HTML 的方法。 但是,我只是想让您可以发布任何文本,包括 HTML 和 Javascript,而浏览器不会将其解释为“运行此...”代码:我想将其显示为平面文本。 我在 Facebook 上看到过,当我查看帖子的源代码时,它显示 <、/ 和 > 作为常规文本。 我尝试“剖析”Facebook 的源代码,但一无所获。 我曾尝试使用诸如<pre>
和<code>
标签,但由于缺乏设计和控制它们的能力,我放弃并回到只允许 HTML。 拜托,任何知道如何做到这一点的人,请帮助我。
提前致谢,
TP
有一个函数可以“转义” html 特殊字符。 这将改变
<p>Some dangerous html</p>
<script>window.location.replace('http://pornography.com');</script>
进入:
<p>Some dangerous html</p>
<script>window.location.replace('http://pornography.com');</script>
浏览器将显示为纯文本(即<p>Some ...
)。
顺便说一句,这将发生在这篇文章中的文本中。 这可能是最好的。
您可以使用函数strip_tags()来过滤输入。 如果您看到文本已更改,则表示用户尝试输入 html 数据。 您要么拒绝输入,要么保留过滤后的版本。
要将 < 和 > 等显示为文本,请使用
$output = htmlentities($string, ENT_QUOTES);
这将确保任何 html 代码都显示为文本而不是纯 html。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.