簡體   English   中英

檢查HTML是否包含PHP中的JavaScript

[英]Check if HTML contains JavaScript in PHP

我需要檢查用戶提交的HTML是否包含任何JavaScript。 我正在使用PHP進行驗證。

如果您想保護自己免受跨站點腳本(XSS)的攻擊,那么您最好使用白名單而不是黑名單 因為在尋找XSS攻擊時需要考慮太多方面

只需列出您要允許的所有HTML標記和屬性,然后刪除/轉義所有其他標記/屬性。 對於那些可用於XSS攻擊的屬性,請驗證值以僅允許無害值。

采用不同的方法並使用HTML Purifier之類的東西來過濾掉你不想要的任何東西可能會更好。 我認為在沒有正確解析HTML的情況下安全地刪除javascript的任何可能性是非常困難的。

好吧,讓我們不要在這里天真:

<script> "<!-- </script> -->"; document.write("hello world"); </script> <script> "<!-- </script> -->"; document.write("hello world"); </script> (應該通過regexadvice建議的過濾器)

過濾掉javascript是一個安全問題,這意味着你需要徹底和正確地完成它,而不是一些快速入侵。

您可以使用正則表達式刪除Pawka聲明的腳本標記。 我在這里發現了一個帖子。

基本上它是:

$list=preg_replace('#<script[^>]*>.*?</script>#is','',$list);

代碼來自該頁面,不是我寫的。

您需要掃描<script>標簽,但您還需要掃描像onclick=""onmouseover=""等屬性...可以使用javascript而不需要腳本標記。

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM