我正在管理一個部分人可以提交自己的文章和條目的博客。我希望他們能夠通過HTML嵌入視頻(以及選擇粗體,斜體等文字)。如何在維護網站安全的同時做到這一點?HTML轉義只有一些字符和字符的組合?
如果我沒有HTML轉義的實際文章空間,一個公開的評論會毀了我的網站。有沒有辦法有選擇地逃避某些字符組合?
編輯;希望沒有寫我自己的解析器。我只是想簡單的東西,如<b>
,<i>
等標籤非轉義,以及視頻和鏈接嵌入。
我正在管理一個部分人可以提交自己的文章和條目的博客。我希望他們能夠通過HTML嵌入視頻(以及選擇粗體,斜體等文字)。如何在維護網站安全的同時做到這一點?HTML轉義只有一些字符和字符的組合?
如果我沒有HTML轉義的實際文章空間,一個公開的評論會毀了我的網站。有沒有辦法有選擇地逃避某些字符組合?
編輯;希望沒有寫我自己的解析器。我只是想簡單的東西,如<b>
,<i>
等標籤非轉義,以及視頻和鏈接嵌入。
我使用什麼SO使用。它是開源的,並且有許多語言的解析器。
名稱是WMD和問題"Where's the WMD editor open source project?"有一些QA材料概述此編輯器。
問題"running showdown.js serverside to conver Markdown to HTML (in PHP)"有一些QA材料概述了PHP中的一些Markdown庫。
小心:要以安全的方式運行此操作,您需要在服務器端執行javascript代碼,例如通過node.js *或*你必須在PHP中有一些compatbile,比如一個類似於該擴展的javascript代碼的降價庫。將第二部分添加到答案中也許會有用。 – hakre
@hakre - 降價是很常見的,所有的語言都有解析器。很容易找到一個。我將在答案中添加到PHP的鏈接 –
要做到這一點,大多數網站(如SO)使用的最簡單的方法是引入您自己的特殊標記,然後將其轉換爲您想要的功能。
例如,SO使用星號(*
)以斜體和(**
)大膽(編輯:旁邊的HTML標籤<b></b>
本身,看這個答案的來源)。
其他網站使用[b]
和[i]
標籤。您可以使用[video=http://myvideo.com]
標籤,然後您的PHP將其轉換爲適當的HTML實體。
您可以安全地HTML轉義一切。您的視頻的網址不會受到您想要執行的任何轉義操作的影響。
你不會說你正在使用什麼語言,但有可能你不必編寫自己的解析器。 HTML解析是一個解決的問題,軟件包比比皆是,爲你做到這一點。 –
我將問題標記爲PHP和HTML。 – gator
然後從這裏開始:http://stackoverflow.com/questions/292926/robust-mature-html-parser-for-php –