簡體   English   中英

PHP:可以安全地允許用戶編寫自定義CSS來自定義我網站上的網頁嗎?

[英]PHP: Safe to allow users to write custom CSS to customize a webpage on my site?

我正在構建一個Web應用程序,以允許其他人設計自己的頁面。 我正在使用PHP,MySQL。

我在想。 允許用戶通過編寫自己的CSS代碼來自定義頁面是否安全?

所以我在想一個TEXTAREA字段,然后他們可以在其CSS代碼中輸入。

我正在使用PHP filter_var($ string,FILTER_SANITIZE_STRING,FILTER_FLAG_STRIP_HIGH); 在將字符串保存到我的數據庫之前對其進行過濾。

所以....允許還是不允許?

謝謝!

從某種意義上說,用戶可以使用瀏覽器插件等以自己的方式覆蓋CSS,這是安全的。 只要確保一個用戶不會影響另一用戶的CSS。

但是,請使用專用的轉義功能來清理數據庫的數據。 例如MySQL的mysql_real_escape_string()

沒有。

IE允許您通過CSS(行為屬性)包含JavaScript文件。 但是,如果只有輸入CSS代碼的用戶能夠看到它,那是安全的。 如果您限制允許的屬性也很安全-但請注意,您也必須限制值(再次感謝IE,它允許使用JavaScript進行動態值設置)。

通常,允許用戶為自己的網站輸入自己的CSS代碼是安全的。 瀏覽器已經實現了自己的用戶代理CSS,以對未樣式化的元素實施通用樣式。 (根據CSS2規范:“用戶代理的默認樣式表應以符合文檔語言的一般表示期望的方式來呈現文檔語言的元素”。)此外,確保網站可訪問性的很大一部分是允許客戶用戶使用代理CSS。

但是,僅因為可以安全地完成此操作並不意味着應該這樣做。 例如,任何用戶都可以輕松地將元素的背景圖像設置為網絡上的不合適圖像。 提供此功能只能打開對您的站點進行惡意攻擊的大門,我認為通常應避免這樣做。

清理代碼是最佳做法。

為避免IE漏洞,您可以使用W3C驗證程序在保存之前檢查CSS正弦值。

http://jigsaw.w3.org/css-validator/api.html

希望能幫助到你。 再見!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM