2009-08-22 34 views
2

我正在發佈一個帶有textarea的表單。HTML DOM Validator - PHP或JavaScript

我允許發佈HTML。

現在我想檢查用戶是否已經關閉了他發佈的html中的標籤......當我顯示該HTML時,像div和table等破壞的標籤會損壞整個頁面顯示...任何方式來檢查在PHP或JavaScript中適當的標籤useage?

任何指針或幫助,將不勝感激。

謝謝

回答

2

你可能想看看所謂的HTMLPurifier一個PHP的工具 - 有可用的demo page,如果你想快速檢查它能做什麼。

它需要「排序」HTML作爲輸入,並提供格式良好的HTML作爲輸出;這樣,您不會強制用戶輸入格式良好的HTML,但可以「更正」他們輸入的內容。

另一件好事是,您可以指定允許哪些標籤和屬性;這是很好的安全性也:

  • 例如,你可以讓<p><strong>標籤,但不<script>
  • 你也可以允許<a> + href;但不<a> + onclick


例如,這裏是一些形成沒有孔HTML,你可以給它:

<p>this is a <strong>test</p> 
<script type="text/javascript">alert('glop');</script> 
<p>And this is another <em>te<strong>st</em></strong></p> 

這裏給出合式/安全HTML輸出:

<p>this is a <strong>test</strong></p> 
<p>And this is another <em>te<strong>st</strong></em></p> 

發生了什麼變化?

  • 在第一段的<strong>標籤已經自動關閉
  • <script>標籤及其內容已被刪除
  • 閉合<em><strong>標籤在第二段的順序已被校正。

這只是一個簡單的例子,當然 - 我希望它有幫助。

+0

非常感謝... – foxybagga 2009-08-26 11:22:13