Skip to content

安全

运行用户

建议将运行用户设置为权限较低的用户,例如与 nginx 运行用户一致。运行用户在 config/server.php 中的 usergroup 中设置。 类似的自定义进程的用户是通过 config/process.php 中的 usergroup 来指定。 需要注意的是,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/databasethink-orm,使用时尽量不要自己组装 SQL。

nginx 代理

当你的应用需要暴露给外网用户时,强烈建议在 webman 前增加一个 nginx 代理,这样可以过滤一些非法 HTTP 请求,提高安全性。具体请参考 nginx 代理

基于 MIT 许可发布