在模板中显示 html 标签 - symfony 和 CKEDITOR。安全如何?

发布于 11-29 04:58 字数 552 浏览 1 评论 0原文

我使用 Symfony 1.4 和 Doctrine 1.2。我安装了插件 http://www.symfony-project.org/plugins/sfCkPlugin 如果我从表单添加网络数据,这工作正常,但在模板中,这向我展示了例如:

<p><b>bold</b> <i>test</i></p>

而不是

粗体 测试

我必须在此处添加一些内容:getDesc() ?> ; ,但是什么?

在数据库MySQL中我有:

<p> <strong>bold</strong> <u>test</u></p> 

这安全吗?

i use Symfony 1.4 and Doctrine 1.2. I installed plugin http://www.symfony-project.org/plugins/sfCkPlugin
if i add net data from form this working ok, but in template this show me for example:

<p><b>bold</b> <i>test</i></p>

etc

instead of

bold test

I must something add here: getDesc() ?> , but what?

In database MySQL i have:

<p> <strong>bold</strong> <u>test</u></p> 

this is safety?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独孤求败2024-12-06 04:58:32

这是由于 symfony 中的输出转义器而发生的。

您可以通过对数据调用 getRawValue() 来修复此问题:

$obj->getDesc()->getRawValue();

请记住,如果执行此操作,您需要确保输入的 html/javascript/其他内容可以安全地输出到页面上。如果它来自后端,则可能没问题。但如果它来自最终用户,您应该确保其安全(阻止 XSS 攻击、防止破坏布局的 html 等)。这是一个很大的话题!

This is happening because of the output escaper in symfony.

You can fix it by calling getRawValue() on the data:

$obj->getDesc()->getRawValue();

Bear in mind that if you do this, you need to ensure that the html/javascript/whatever else has been entered is safe to output on the page. If it's coming from a backend, you are probably ok. But if it's coming from end users, you should ensure you make it safe (block XSS attacks, prevent html that breaks the layout, etc). It's a big topic!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文