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