Symfony如何/在何处评论<;?php自动标记?

Symfony如何/在何处评论<;?php自动标记?,php,symfony,twig,Php,Symfony,Twig,我试图允许使用注释中明确指出的,您希望在帖子中显示php脚本的内容。您不想执行该脚本。这已经是一个巨大的差异 您正在使用tgalopin/html消毒剂对用户输入进行消毒。通常,您希望在输出时进行消毒。因此,不要在模板中使用|raw,而是调用html sanitizer的|sanitize_html过滤器()。这将在产出上产生微小但显著的差异: 使用| raw: <p>hey there <?php die('hijacked'); ?></p> 因为|sa

我试图允许使用注释中明确指出的
,您希望在帖子中显示php脚本的内容。您不想执行该脚本。这已经是一个巨大的差异

您正在使用
tgalopin/html消毒剂
对用户输入进行消毒。通常,您希望在输出时进行消毒。因此,不要在模板中使用
|raw
,而是调用
html sanitizer
|sanitize_html
过滤器()。这将在产出上产生微小但显著的差异:

使用
| raw

<p>hey there <?php die('hijacked'); ?></p>

因为
|sanitize_html
允许
p
标记并转义
php
标记,所以浏览器知道如何呈现页面:它将
p
标记解析为html元素,而
php
标记只是文本。这使得一切都按预期进行。

无法复制:。你确定表格的内容真的是你展示给我们的吗?嘿,是的,我确定,我刚刚在一个新的symfony/网站框架项目上测试了我的问题,以确保不是我的任何配置导致的,我仍然得到同样的结果。我制作了一个GitHub回购协议供您测试,如果您愿意的话:这是非常不安全的。它使文章的作者能够改变页面的执行。例如,它们可能会回显您的ENV的内容,其中包含数据库密码等敏感信息。使用
|raw
还允许帖子作者将js脚本注入您的页面,使您的用户暴露于xss攻击等。您试图实现什么?我正在使用
tgalopin/html消毒剂来避免xss攻击。我只是想让用户对解释表示感谢,这有助于理解这里发生了什么。尽管它仍然不适用于
|清理html
。但我会设法逃脱

{% for comment in post.comments %}
  {{ comment.content|raw }}
{% endfor %}
| id | post_id |                   content                  |
|  1 |    1    | <p>hey there <?php die('hijacked'); ?></p> |
<p>hey there <!--?php die('hijacked'); ?--></p>
<p>hey there <?php die('hijacked'); ?></p>
<p>hey there <!--?php die('hijacked'); ?--></p>
<p>hey there &lt;?php die('hijacked'); ?&gt;</p>