安全
運行用戶
建議將運行用戶設置為權限較低的用戶,例如與nginx運行用戶一致。運行用戶在 config/server.php
中的user
和group
中設置。
類似的自定義進程的用戶是通過config/process.php
中的user
和group
來指定。
需要注意的是,monitor進程不要設置運行用戶,因為它需要高權限才能正常工作。
控制器規(guī)范
controller
目錄或者子目錄下只能放置控制器文件,禁止放置其它類文件,否則在未開啟控制器后綴時,類文件有可能會被url非法訪問,造成不可預知的后果。
例如 app/controller/model/User.php
實際是Model類,但是卻錯誤的放到了controller
目錄下,在沒開啟控制器后綴時,會導致用戶可以通過類似/model/user/xxx
訪問User.php
里的任意方法。
為了徹底杜絕這種情況,強烈建議使用控制器后綴明確標記哪些是控制器文件。
XSS過濾
考慮通用性,webman沒有對請求進行XSS轉義。
webman強烈推薦在渲染時進行XSS轉義,而不是在入庫前進行轉義。
并且twig、blade、think-template等模版會自動執(zhí)行XSS轉義,無需手動轉義,非常方便。
提示
如果你在入庫前進行XSS轉義,很可能造成一些應用插件的不兼容問題
防止SQL注入
為了防止SQL注入,請盡量使用ORM,如 illuminate/database、think-orm,使用時盡量不要自己組裝SQL。
nginx代理
當你的應用需要暴露給外網用戶時,強烈建議在webman前增加一個nginx代理,這樣可以過濾一些非法HTTP請求,提高安全性。具體請參考nginx代理