我有一個想法可以將模板放在數據庫中,並且可以讓設計人員直接從CMS面板編輯模板。但困擾我的是安全問題。如果我們有能力直接在模板中放入python命令,它怎麼可能是安全的。如果我在mako模板中有這樣的東西:Mako模板和安全
<%!
import os
os.system('rm /var/www/env/harmless.txt')
%>
它會執行成功且harmless.txt將被刪除。我應該找到另一個除Mako以外的模板引擎,或者我可以以某種方式配置Mako以防止有害的代碼注入?另一方面,一些python命令在模板中非常有用,例如,如果語句內聯。
我不是太woried有關,如果人們都運行自己的CMS 。他們爲什麼會試圖造成傷害?如果您擔心安全問題,那麼只需在沙箱中運行python即可。 –
您可以完全通過使用JavaScript模板系統消除問題,並在客戶端執行所有呈現(和代碼執行)。 EJS和茶杯都很好,雖然茶杯基於咖啡標記,如果你只是使用直線JS,會增加額外的複雜程度。 – umeboshi