安全
运行用户
建议将运行用户设置为权限较低的用户,例如与nginx运行用户一致。运行用户在 config/server.php
中的user
和group
中设置。
类似的自定义进程的用户是通过config/process.php
中的user
和group
来指定。
需要注意的是,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/database、think-orm,使用时尽量不要自己组装SQL。
nginx代理
当你的应用需要暴露给外网用户时,强烈建议在webman前增加一个nginx代理,这样可以过滤一些非法HTTP请求,提高安全性。具体请参考nginx代理