2012-03-30 184 views
3

我在我的應用程序中使用了PHP和Zend Framework。用戶可以輸入一些HTML,管理員可以看到這個HTML。我想避免XSS注入。所有的HTML應該顯示爲除了任何JavaScript。我試圖刪除script標籤,但它不安全。用戶可以將javascript添加到onclick或其他事件。避免執行javascript的最佳方法

謝謝。

+0

在這種情況下,我可能會使用某種輸入清洗/淨化器。例如htmLawed: http://www.bioinformatics.org/phplabware/internal_utilities/htmLawed/index.php – 2012-03-30 12:23:29

回答

4

如果你正在尋找從XSS過濾用戶輸入這個樣子,我會考慮使用HTML purifier

只刪除腳本標記是不夠的,你就錯過了任何JavaScript嵌入人們可以添加,除其他事項外。

HTML purifier但是會將其全部刪除。來自他們的網站:

HTML淨化器是一個符合標準的HTML濾波器庫,編寫在 PHP中。 HTML Purifier不僅會刪除所有的惡意代碼(更好的 稱爲XSS),並且它還會確保您的文檔符合標準 ,只有通過全面瞭解 W3C規範才能實現。

+0

不錯的工具。謝謝。我會調查它。 – pltvs 2012-03-30 13:21:31

1

我認爲你最好的選擇是手動覆蓋所有的漏洞。

首先刪除腳本標記,然後在on事件(onclick,onhover ...)上運行正則表達式,並刪除這些事件。還有更多的偏差...

CodeIgniter(其他框架也可能)有一個函數xss_clean(),你可能會看看那個,看看他們做什麼。

相關問題