安全

執行使用者

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

控制器規範

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

XSS過濾

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

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

防止SQL注入

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

nginx代理

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