安全

运行用户

建議將運行用戶設置為權限較低的用戶,例如與nginx運行用戶一致。運行用戶在 config/server.php 中的 usergroup 中設置。類似的自訂進程的用戶是透過 config/process.php 中的 usergroup 來指定。需要注意的是,monitor 進程不要設置運行用戶,因為它需要高權限才能正常工作。

控制器規範

controller 目錄或子目錄下只能放置控制器文件,禁止放置其他類文件,否則在未開啟 控制器後綴 時,類文件有可能會被url非法訪問,造成不可預知的後果。 例如 app/controller/model/User.php 實際是 Model 類,但是卻錯誤的放到了 controller 目錄下,在沒開啟 控制器後綴 時,會導致用戶可以通過類似 /model/user/xxx 訪問 User.php 裡的任意方法。為了徹底杜絕這種情況,強烈建議使用 控制器後綴 明確標記哪些是控制器文件。

XSS過濾

考慮通用性,webman 沒有對請求進行 XSS 轉義。webman 強烈推薦在渲染時進行 XSS 轉義,而不是在入庫前進行轉義。並且 twig、blade、think-template 等模板會自動執行 XSS 轉義,無需手動轉義,非常方便。

提示
如果你在入庫前進行 XSS 轉義,很可能造成一些應用插件的不兼容問題

防止 SQL 注入

為了防止 SQL 注入,請儘量使用 ORM,如 illuminate/databasethink-orm,使用時儘量不要自己組裝 SQL。

nginx 代理

當你的應用需要暴露給外網用戶時,強烈建議在 webman 前增加一個 nginx 代理,這樣可以過濾一些非法 HTTP 請求,提高安全性。具體請參考 nginx 代理