繁体   English   中英

阻止 HTML 和 Javascript 显示在我的网站上

[英]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>

进入:

&lt;p&gt;Some dangerous html&lt;/p&gt;
&lt;script&gt;window.location.replace('http://pornography.com');&lt;/script&gt;

浏览器将显示为纯文本(即<p>Some ... )。

顺便说一句,这将发生在这篇文章中的文本中。 这可能是最好的。

您可以使用函数strip_tags()来过滤输入。 如果您看到文本已更改,则表示用户尝试输入 html 数据。 您要么拒绝输入,要么保留过滤后的版本。

我想你想要的只是删除链接和 javascript。 你可以用正则表达式

用于解析网页链接的正则表达式?

php正则表达式资源

要将 < 和 > 等显示为文本,请使用

$output = htmlentities($string, ENT_QUOTES);

这将确保任何 html 代码都显示为文本而不是纯 html。

http://php.net/manual/en/function.htmlentities.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM