【问题标题】:How to display html as text?如何将html显示为文本?
【发布时间】:2018-11-16 18:45:24
【问题描述】:

我有一个网站,允许任何人将他们想要的任何内容上传到我的网站,我在上传网络钓鱼 html 时遇到了问题,我想将 html 页面显示为文本而不是加载它,但我不是确定我会怎么做?我认为这是可以在 htaccess 中完成的,但我找不到任何关于它的信息。我正在使用带有 Apache 的 Ubuntu。当有人上传 html 文件时,我需要自动化该过程,我只需要在一个目录中禁用 html,并且该目录不会与任何应该正确显示的 html 文件共享

【问题讨论】:

  • 又快又讨厌?把它放在一个 PRE 中,每个

标签: javascript html css apache


【解决方案1】:

您可以使用Content-Type: text/plain; charset=UTF-8 标头发送。

.htaccess:

AddType text/plain html

【讨论】:

    【解决方案2】:

    也许使用这个功能:

    function htmlEntities(str) {
        return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
    }
    

    来源:https://css-tricks.com/snippets/javascript/htmlentities-for-javascript/

    【讨论】:

      【解决方案3】:
      <xmp> 
       user content here
      <xmp>
      

      &lt;xmp&gt; 元素已过时,但行为是在 HTML5 中定义的。
      所有现代和非现代浏览器都支持它。

      或者,如果您更喜欢有效的 HTML,则:

      <body>
      <script type=text/plain style=display:block>
       user content here 
      </script>
      

      您必须确保用户内容不包含&lt;/xmp&gt;&lt;/script&gt;,分别。

      【讨论】:

      • 这是一个可怕的建议。 &lt;xmp&gt; 早在 HTML 2.0 就已被弃用,并在 3.2 中被淘汰。它现在仅作为过时的元素列出。在浏览器中“它有效”只是为了向后兼容,没有其他原因。它可以在一个小时内被删除,恕不另行通知。不要不要这样做!
      • 我很清楚弃用并且不坚持这是一个好主意。请随意使用&lt;script&gt;。但是来自 HTML 规范 html.spec.whatwg.org/multipage/… 第 15.3 节“实现要求”:“用户代理必须以在语义和渲染目的方面与 pre 元素等效的方式处理 xmp 元素...... " 所有浏览器都这样做,并且浏览器可以删除对xmp 的支持。此外,在解析部分html.spec.whatwg.org/multipage/parsing.html#parsing 中对xmp 有几个要求
      • 不要拖这个,但 &lt;xmp&gt; 仍然过时 - 不再被弃用 - 正如我所说,可以随时删除,删除最终。
      • 好吧,&lt;applet&gt;&lt;basefont&gt;&lt;isindex&gt; 实际上已从 HTML 标准中删除(对于作者和实施者而言)。对于&lt;font&gt;&lt;xmp&gt;&lt;nobr&gt;&lt;center&gt;&lt;big&gt;&lt;marquee&gt;&lt;frameset&gt; 等属性或align=&lt;table width=&gt;、@98763@4654 等属性,没有人会认真地期待这一点、bgcolor=frameborder= 等等。
      • &lt;marquee&gt; 从一开始就从未成为任何 HTML 标准的一部分,除了它在 HTML5 中的定义。把它放在那里的唯一目的是宣布它已经过时并准备移除。原因:向后兼容过去(和现在)使用它的许多人。浏览器供应商现在可以指出在小时/天/周/年内放弃它的原因。你不能删除不存在的东西,因此它的定义。
      【解决方案4】:

      方法一

      在您网站的根目录创建一个 .htaccess 文件并添加以下行:

      [Apache2 @ Ubuntu/Debian:使用这个指令]

      AddType application/plain .html .htm

      以上将拦截并处理您目录中的任何 html 页面以作为纯文本文件运行。

      方法二

      或者,您可以运行一个单独的进程来接受传入的 html 页面并在运行时执行到纯文本的转换。字符串替换方法可以解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-19
        • 2014-04-01
        • 2022-01-21
        • 1970-01-01
        • 2020-08-10
        • 2015-02-26
        • 2011-10-12
        • 1970-01-01
        相关资源
        最近更新 更多