2016-03-02 94 views
-2

在我們的應用程序中,最終用戶提供了一個文本框,他們可以粘貼html或javascript代碼來創建非常像Google廣告的廣告,所以我需要驗證這些html和js源代碼是否符合惡意代碼以及正確的語法。 那麼在java中有沒有可用的API來做同樣的事情?如何驗證JavaScript和HTML代碼?

在此先感謝 阿里。

+2

確實沒有任何確定的方法來驗證原始HTML/Javascript。 – Marie

+1

顯示您的研究。 – moffeltje

+0

對於html代碼驗證Jtidy可以使用,但對於Javascript代碼驗證和惡意代碼我無法找到任何東西。 –

回答

0

驗證JS 客戶端僅對您的好用戶有用 - 因爲無論如何惡意用戶可以繞過任何客戶端驗證代碼(通過與應該進行驗證的JS進行混淆)。

驗證JS 服務器端尋找「惡意」在一般意義上是不可能的,除非你有一個非常嚴格的白名單來檢查。最好在沙盒中執行防止壞事的東西,並避免驗證(=在執行前檢查有效性)。

所以,JavaScript沙盒。最常用的可能是Google Caja - 也可以防止錯誤的html/css。沙盒並不容易 - 特別是,Caja需要一個服務器端部分來「哄騙」文件並保護主頁;並且需要在預先標識的地方標識div之外的主頁的任何部分。

另請參見另一個SO問題的一些alternatives。請注意,他們中的許多人不允許從受保護的代碼訪問DOM,因此對於實際上必須在屏幕上顯示內容的JS沒有用處。

0

如果您搜索它,您可以在Internet上找到很多來源。這裏有幾個:Java Encoder ProjectJava HTML Sanitizer。我從來沒有使用過它們,但這是一個起點。如果你自己做研究,你可以學到很多東西。

編輯:目前還不清楚您是否在尋找Java API或JavaScript API。他們完全不同。