2012-10-04 21 views
1

我正在爲我的一個網站編寫一個基本的CMS,並遇到了一些問題,其中一些頁面需要動態地爲PHP和JS提供服務,其他人都是普通的HTMl。我希望有一個設置可以讓這個頁面需要它,並且會加載ACE編輯器而不是一個不同的wysiwyg編輯器。我想拒絕任何在非代碼啓用頁面上編碼的輸入。我如何確保從數據庫中包含的所有JS和PHP都不會執行?發現在Web輸入中的代碼,PHP

+0

php代碼只運行服務器。沒有什麼可以在瀏覽器的文本框中使用php代碼來做到這一點,它可以在沒有英雄式干預的情況下運行 –

+2

只有Jon Skeet可以從文本框運行PHP。 – GolezTrol

回答

0

你並不真的想這樣做。除了安全方面的問題,如果你做錯了事情,它將成爲一個絕對的維護噩夢 - 沒有好方法將CMS頁面放入版本控制。在開發環境和活動網站之間測試和遷移代碼變得脆弱,至多。 In one of my other posts,我詳細介紹了運行Drupal站點&時出現的問題,您正在開始一條類似的道路。如果你堅持遵循這個計劃,走的路是使用一個適當的模板引擎(我最近一直在使用h2o)&讓你不必擔心會轉義內容。另一件事我會做的是將PHP和代碼的可顯示部分分開放在完全獨立的字段中。這不僅可以讓你獲得更清晰的代碼(記住,混合顯示和邏輯是壞的),但你總是可以把你顯示爲'啞'文本,並且只允許它通過模板訪問你的PHP輸出。

+0

關於CMS的有效點。這是一個不幸的必要性,因爲那些主動更新網站的人甚至不知道基本的html。 (並且當前網站是由正在閱讀「PHP for Dummies」的人編寫的,所以它不會太不安全!)。 我會查看h2o。我的部分問題是,許多頁面是從一些舊的數據庫中產生的,其他3/4的人需要能夠從WYSIWYG編輯器進行更新。 – bytewalls

+0

@bytewalls我的投訴並不是反CMS,因爲它是反代碼在數據庫。我的答覆的後半部分着重於控制風險。 –