亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Symfony 如何/在哪里自動注釋 <?php 標簽?

Symfony 如何/在哪里自動注釋 <?php 標簽?

PHP
倚天杖 2023-04-15 17:36:03
我試圖通過Symfony 5.0.8 的標簽允許<?php在論壇上使用標簽。code不知何故 Symfony(或 Twig,我不能在這里說)神奇地將它放在評論之間,我真的不知道在哪里,如何以及為什么這樣做。顯然,我正在通過raw過濾器將我的數據傳輸到我的樹枝模板中。這里有一些代碼來可視化這個東西??刂破鱬ublic function show(Post $post) {    $this->render('show.html.twig', ['post' => $post]);}樹枝模板{% for comment in post.comments %}  {{ comment.content|raw }}{% endfor %}comment這是您可以在我的數據庫中找到的表格文本示例| id | post_id |                   content                  ||  1 |    1    | <p>hey there <?php die('hijacked'); ?></p> |以及顯示的內容<p>hey there <!--?php die('hijacked'); ?--></p>我怎樣才能允許使用<?php標簽?安全嗎?如果沒有,我怎樣才能保證安全?
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

您想在帖子中顯示 php 腳本的內容。您不想執行腳本。這已經是天壤之別了。

您正在使用tgalopin/html-sanitizer來清理用戶輸入。通常,您希望在輸出時進行清理,而不是在輸入時進行清理。因此,不要|raw在您的模板中使用,而是調用html-sanitizer|sanitize_html過濾器 。這將對輸出產生微小但顯著的差異:

使用|raw

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

您的瀏覽器將轉換為哪個<!--?..,因為它無法識別<?php ..為有效的 HTML 元素(并且它會嘗試修復 HTML 文檔):

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

使用|sanitize_html

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

因為|sanitize_html允許p標記并轉義php標記,所以您的瀏覽器知道如何呈現頁面:它將p標記解析為 HTML 元素,而php標記只是文本。這使得一切都按預期工作。


查看完整回答
反對 回復 2023-04-15
  • 1 回答
  • 0 關注
  • 123 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號