安全
執行使用者
建議將執行使用者設置為權限較低的使用者,例如與nginx執行使用者一致。執行使用者在 config/server.php
中的 user
和 group
中設置。類似地,自定義進程的使用者是透過 config/process.php
中的 user
和 group
來指定。需要注意的是,監控進程不要設置執行使用者,因為它需要高權限才能正常工作。
控制器規範
在 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/database、think-orm,使用時盡量不要自己組裝SQL。
nginx代理
當你的應用需要暴露給外網使用者時,強烈建議在webman前增加一個nginx代理,這樣可以過濾一些非法HTTP請求,提高安全性。具體請參考nginx代理