编码输出
预设情况下,Fuel 倾向编码输出多于过滤输入。这背后的原因是双重的。 无论你的资料来源,以及它是否被过滤,当它送到客户端时,编码输出将使之无害化。 这也意味着所有的输入都储存在原始和未改变的形式,所以无论发生什幺事, 你始终可以存取原始资料。
这也意味着你就不会遇到麻烦当你需要资料是未改变的形式。 一个常见的例子是资料由 HTML 编辑器如 TinyMCE 或 ckeditor 产生,用于大量应用程序中给终端使用者编辑内容。 在这种情况下,你可能想要在这些输入变数运行过滤 XSS, 以过滤掉任何可能已经产生的讨厌惊喜,因为这是一个典型的例子, 你不想要在输出时编码资料。
由于编码输出只能发生在字串,你必须注意你想要传递给检视的物件。 或确保你的物件包含一个 __toString() 方法让编码可以发生, 添加你的物件类别到在安全配置中的类别白名单(别忘了命名空间!),或传递它到检视带着 $encode 标誌设为 false。 你也可以使用 auto_encode 方法, 在每个检视的基础上临时停用自动编码输出。
详见检视安全性段落以了解这如何为检视实现。