簡體   English   中英

PHP: <script> tag echoed from $_POST is mysteriously blocked

[英]PHP: <script> tag echoed from $_POST is mysteriously blocked

我正在嘗試測試從PHP安全中學到的信息。 我有一個帶有POST表單和單個textarea輸入的簡單HTML5頁面,在其中輸入了以下JS代碼:

<script>var x = 5; alert(x);</script>

在接收PHP頁面中,我只是echo $_POST['varname']; 查看JS代碼的執行情況。 當然,這是嘗試清理輸入的第一步。

...但是它不起作用! 我得到的HTML代碼是字面上的

<doctype html>
<html>
<body>
<script>var P = 3; alert(P);</script></body>
</html>

...但是警報沒有運行! 更加奇怪的是,當我將代碼原樣復制到PHP文件中,而無需使用PHP就可以返回此代碼時,它不會再次運行,但是如果我更改了變量名或其值,它運行!

Chrome和Safari均會發生這種情況。 我檢查了發送和接收的標頭,找不到任何可疑的內容。

有誰知道這是什么奇怪的伏都教魔法? 因為我在這里迷失了方向。

我運行您的代碼,並在Chrome的控制台上顯示

“拒絕執行JavaScript腳本。在請求中找到腳本的源代碼。”

因此,這可能是一種自然的安全措施,代碼沒有錯。

行為可能因瀏覽器而異,因為它們使用的方法不同

找到了解決方案。 這是WebKit本身的安全功能-這就是Chrome和Safari都擁有它的原因。 為了防止某些形式的XSS攻擊,它阻止頁面執行在請求標頭中發送的JS代碼。 繞過此方法的方法是發送響應頭

x-xss-protection: 0

現在我所有的假冒惡意代碼都能很好地運作。

嘗試顯示來自 PHP 腳本的回顯圖像和 ` <img src="“…”`" tag< div><div id="text_translate"><p> 目標:</p><p> 1)我在 web 根目錄之外有一個圖像文件夾,其中放置了來自 web 應用程序的所有圖像(每個圖像路徑都保存在數據庫表中);</p><p> 2) 我想根據用戶的請求獲取該圖像。</p><p> 很簡單,對吧?</p><p> 我做了:</p><p> a) 創建一個 class 來讀取圖像(具有我記得的所有安全功能和保護措施)。 它(成功地)返回使用相應的 mime 類型編碼(base64)的圖像。</p><p> b) 出於演示目的,我創建了一個 index.php,它具有:</p><p> &lt;img src="agivenscript.php?img=name.jpeg"&gt;</p><p> 我在這里唯一的目標是從我的 web 應用程序中的任何其他地方調用一個腳本,該腳本輸出具有相應 mime 類型的 base64 編碼圖像。</p><p> c) 創建了一個腳本“agivenscript.php”,它通過 GET 接收圖像名稱,實例化我的 class 並在一切順利時獲取 base64 編碼圖像。 然后它與圖像相呼應。</p><p> 怎么了:</p><ul><li> 當我做 output - 使用 echo '&lt;img src="'. $output64encodedwithmimetype. '"&gt;'; - 在 agivenscript.php 中,它就像一個魅力;</li><li> 此外,如果我將 $output64encodedwithmimetype 內容直接放在 index.php 的 src 標記中,它也可以工作。</li><li> 但是,當我嘗試&lt;img src="agivenscript.php?img=name.jpeg"&gt;時它不起作用。</li></ul><p> 由於 base64 編碼的圖像顯然很好(並且具有 mime 類型),我錯過了什么? 任何想法?</p><p> 預先感謝。</p></div>

[英]Trying to display an echoed image from a PHP script in and `<img src=“…”` tag

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 嘗試顯示來自 PHP 腳本的回顯圖像和 ` <img src="“…”`" tag< div><div id="text_translate"><p> 目標:</p><p> 1)我在 web 根目錄之外有一個圖像文件夾,其中放置了來自 web 應用程序的所有圖像(每個圖像路徑都保存在數據庫表中);</p><p> 2) 我想根據用戶的請求獲取該圖像。</p><p> 很簡單,對吧?</p><p> 我做了:</p><p> a) 創建一個 class 來讀取圖像(具有我記得的所有安全功能和保護措施)。 它(成功地)返回使用相應的 mime 類型編碼(base64)的圖像。</p><p> b) 出於演示目的,我創建了一個 index.php,它具有:</p><p> &lt;img src="agivenscript.php?img=name.jpeg"&gt;</p><p> 我在這里唯一的目標是從我的 web 應用程序中的任何其他地方調用一個腳本,該腳本輸出具有相應 mime 類型的 base64 編碼圖像。</p><p> c) 創建了一個腳本“agivenscript.php”,它通過 GET 接收圖像名稱,實例化我的 class 並在一切順利時獲取 base64 編碼圖像。 然后它與圖像相呼應。</p><p> 怎么了:</p><ul><li> 當我做 output - 使用 echo '&lt;img src="'. $output64encodedwithmimetype. '"&gt;'; - 在 agivenscript.php 中,它就像一個魅力;</li><li> 此外,如果我將 $output64encodedwithmimetype 內容直接放在 index.php 的 src 標記中,它也可以工作。</li><li> 但是,當我嘗試&lt;img src="agivenscript.php?img=name.jpeg"&gt;時它不起作用。</li></ul><p> 由於 base64 編碼的圖像顯然很好(並且具有 mime 類型),我錯過了什么? 任何想法?</p><p> 預先感謝。</p></div> javascript關閉標記兩次從php回顯 <a>標簽未從 php 回顯到 html</a> 搜索引擎能否找到從PHP腳本回顯的元標記信息? PHP:從頁面上回顯的內容中剝離圖像標記 php mysqli腳本神秘地無法正常工作 從回顯的 php 傳遞數據 在PHP中使用GET和POST回送表單數據並進行操作 如何修復PHP Post請求中沒有回顯的變量? 如何修復PHP Post Request中沒有回顯的變量?
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM