【问题标题】:Validate an HTML embed code using PHP or javascript or PHP framework (Zend)使用 PHP 或 javascript 或 PHP 框架 (Zend) 验证 HTML 嵌入代码
【发布时间】:2010-12-04 10:09:06
【问题描述】:

只是一个简单的问题.. 是否有任何好的做法来验证 HTML 嵌入代码? 仅供参考,我现在正在使用 Zend Framework 和原型+scriptaculous .. 如果有人能提供有关该环境的线索,那就太好了。

谢谢! ^^

【问题讨论】:

    标签: php html zend-framework embed validation


    【解决方案1】:

    如果您想允许用户输入 HTML,然后将其显示在您的网站上,一个非常好的解决方案是HTMLPurifier

    它接受任何“种类”的 HTML 代码作为输入,并返回有效的 HTML,允许您指定必须允许哪些标签和属性——所有其他标签和属性都将被删除。

    这样,如果你的用户输入了无效的 HTML,你仍然会得到有效的 HTML(输出时破坏你的布局的风险较小),如果你只指定了几个非- 危险的标签和属性,这是安全性的一大优势。

    如果您想在无需将其集成到您的应用程序的情况下试用它,可以使用demo page,顺便说一句。

    例如,如果我输入这样的内容:

    <p>
    this <b>is a<i>test</b></i>
    with a not <em>closed tag
    and a <a href="http://google.com" onclick="alert('bouh');">link</a>
    and some <script type="text/javascript>alert('script');</script>
    </p>
    

    我得到的 HTML 为 output will be

    <p>
    this <b>is a<i>test</i></b>
    with a not <em>closed tag
    and a <a href="http://google.com">link</a>
    and some </em></p>
    

    ie标签正常(关闭,按正确顺序),脚本标签已被移除,链接的onclick属性也被移除。

    【讨论】:

    • 也打败了我。我所知道的最好的解决方案之一。 phpclasses 上有几个类做同样的事情,但这可能是最近的 +1
    • 谢谢老兄!!正在寻找这个解决方案! ^^
    【解决方案2】:

    您的问题有点模糊,但听起来您正在提交 html,并且您想在您的网站上重新显示它。

    最好的办法是找出一组可接受的 HTML,并去掉所有不匹配的标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 2012-12-13
      • 2014-02-17
      • 2011-02-20
      • 1970-01-01
      相关资源
      最近更新 更多