【问题标题】:Cakephp SanitizationCakephp 清理
【发布时间】:2012-09-27 10:04:07
【问题描述】:

我正在使用 Sanitize::clean 发布 cmets ,但它用 \n

替换 textarea 中的 New Line

我需要干净的数据,但要使用原始样式,而不是将 NEW LINE 转换为 \n

谢谢

【问题讨论】:

  • 你为什么要打扫卫生?如果您在视图中使用 h() ,则内容是安全的。如果有人想发布恰好包含 <...> 的内容怎么办?就像它刚刚做的那样。如果他的一半文字被搞砸或丢失只是因为开发人员保护过度或感觉如此,他会非常沮丧:)
  • 非常感谢,您说我们不需要从表单中清除任何传入数据,而在我们看来只需执行 htmlspecialchars() 吗?那么我们如何防止 SQL INJECTION 和 XSS 或 ...,谢谢
  • 我刚刚告诉过你。如果您使用 h() ,则无需担心其他任何事情。这就是框架的力量。也就是说,如果您使用像 save() 这样的包装方法,而不是像 query() 或未转义的 updateAll() 等手动查询。

标签: forms cakephp textarea cakephp-2.1 sanitization


【解决方案1】:

在你的变量上使用这个:

nl2br(h($var))

nl2br 在字符串中的所有换行符之前插入 HTML 换行符,而 h 是 CakePHP 对 PHP 的 htmlspecialchars 函数的快捷方式。

您不需要对您的数据执行超过nl2br(h($var)) 的操作。

【讨论】:

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