如何使用 Kohana 2 或 KO3 自动转义视图中的数据
从模型或控制器中转义数据以轻松安全地在视图中显示数据的最佳方法是什么?对每个数据变量使用 html::specialchars($varname) 似乎有些过分了。如果程序员忘记“转义”数据,也可能会导致问题。
我还遇到过在循环内转义 ORM 对象的问题。
What's the best way to escape data from Models or Controllers to easily and safely display them in views. It seems kind of overkill to use html::specialchars($varname) for every data variable. It can also cause problems if a programmer forgets to "escape" data.
I've also encountered problems escaping ORM objects within loops.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我编写了 gimpe 建议的 Twig 模块,默认情况下它会自动转义所有数据。您可能还想了解 Kostache。它是一个基于类的视图系统,可以自动转义。
关于您的评论:
您不想在此处转义数据,因为 HTML 转义数据在所有输出格式中都没有意义,例如:JSON 和 XML。
在视图级别进行转义。
I wrote the Twig module gimpe has suggested and by default it automatically escapes all data. You might also want to look into Kostache. It's a class based view system that does automatic escaping.
Regarding your comment:
You don't want to escape the data here because HTML escaped data doesn't make sense in all output formats, eg: JSON and XML.
Do the escaping at the view level.
实现这一目标的一种方法是使用 Twig 之类的模板引擎来处理视图。 (参见 KO3 模块http://github.com/ThePixelDeveloper/kohana-twig)
然后你只需需要加载Escaper扩展:
参考:http://www.twig-project.org/book/ 03-Twig-for-开发人员
One way to achieve that is using a templating engine like Twig for the views. (see KO3 module http://github.com/ThePixelDeveloper/kohana-twig)
Then you simply need to load the Escaper extension:
Ref.: http://www.twig-project.org/book/03-Twig-for-Developers