2013-01-04 19 views
2

我有一個會員網站,用戶可以在其中嵌入自己的代碼到他們的個人資料。我希望允許他們在其個人資料中包含嵌入代碼,例如YouTube和Javascript嵌入代碼。允許JavaScript的PHP形式,並避免像JsFiddle黑客

我注意到JsFiddle.net可以做到這一點。有人知道如何複製這種安全性嗎?

謝謝你的幫助!

+5

jsfiddle提供了什麼安全性?安全抵抗什麼? – PeeHaa

回答

0

我假設你想從惡意代碼注入,SQL注入等

當提交表單時,您需要驗證輸入服務器端的安全性。只要你在那裏證實你的期望,你應該沒問題。您在JavaScript中進行的唯一驗證(如果有的話)應該是幫助用戶將他們的信息添加到表單中,並查看他們出錯的地方,換句話說就是幫助。

我以前使用YouTube API來驗證視頻條目。不知道Vimeo是否有API,如果它沒有,我會感到驚訝。

+2

驗證如何?爲了防止什麼? – PeeHaa

+0

對同樣模糊的問題的模糊回答。我是唯一沒有得到問題或答案的人嗎?請稍微解釋一下。 – itachi

+0

「我假設你想從惡意代碼注入安全」jsfiddle **是**代碼注入。 – PeeHaa

5

爲用戶提交的HTML,CSS和JavaScript設置完全獨立的域名(例如「exampleusercontent.com」)專用。不要讓這些內容通過您的主域名加載。然後使用iframe將用戶內容嵌入到您的頁面中。

如果您需要比簡單框架更緊密的集成,可能會有幫助,允許不同框架中的腳本以受控方式相互通信。

或者,Google Caja是沙盒第三方JavaScript的開源編譯器,但有時候會有人發現它存在漏洞。

你可能不想依靠Caja作爲你的唯一防禦層。畢竟,Facebook確實放棄了類似的系統(稱爲FBML/FBJS),轉而採用iframe沙盒方法。