【问题标题】:CakePHP: h() vs. Sanitize::html()CakePHP:h() 与 Sanitize::html()
【发布时间】:2013-06-18 02:08:03
【问题描述】:

CakePHP 有一个名为h 的全局函数。这是htmlspecialchars 的便捷方法。 CakePHP 还有一个名为Sanitize 的实用程序,它有一个名为html 的方法。以下是它的部分描述:

此方法准备用户提交的数据以在 HTML 中显示。这 如果您不希望用户能够破坏您的 布局或在 HTML 页面中插入图像或脚本。

应该在什么时候使用它们?一个比另一个好?

【问题讨论】:

标签: cakephp sanitization


【解决方案1】:

Sanitize::html() 更加通用:它允许您完全剥离 HTML(通过 remove 选项),并允许您指定它如何处理引用。

查看源码:
h():http://api.cakephp.org/2.3/source-function-h.html#160-199
Sanitize::html():http://api.cakephp.org/2.3/source-class-Sanitize.html#83-122

编辑:
h():致电htmlspecialchars()
Sanitize::html():致电htmlentities()

有关差异的讨论,请参阅:htmlentities() vs. htmlspecialchars()

【讨论】:

  • 其实Sanitize::html()调用htmlentities
  • 一定是睡着了。 :) 请参阅此问题了解 2 个 PHP 函数之间的区别:stackoverflow.com/questions/46483/…。两者都可以防止 XSS,因此出于安全目的,任何一个都可以。
猜你喜欢
  • 2017-04-03
  • 2015-04-19
  • 2013-01-21
  • 2017-03-22
  • 2015-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多