服务器可能的入侵点及防护措施
服务器可能的入侵点及措施。
### 可能的入侵点
1. 接口:SQL注入、XSS等;
2. 后台:直接改,插件;
Home of Little Jelly
服务器可能的入侵点及措施。
### 可能的入侵点
1. 接口:SQL注入、XSS等;
2. 后台:直接改,插件;
目的:通过brew安装并配置nginx+php+mysql环境,并能正常运行一个ThinkPHP5项目。
环境:macOS Catalina 10.15.7,已安装brew。
最近一个ThinkPHP5做的项目硬盘满了,就给上传目录做了个软链接,即把`/public/uploads`使用`ln -s`命令指向了别的硬盘的目录`/data/uploads`,结果文件都上传失败,报500错误:
使用ThinkPHP5框架,包括基于ThinkPHP5框架开发的第三方框架操作数据库时,有时会提示`SQLSTATE[42S02]: Base table or view not found: 1146 Table ‘testdb.test_table’ doesn’t exist`。
即找不到表或视图。
首先检查下数据库中是否存在该表,一般情况下是因为表确实不存在。
ThinkPHP5的缓存和session默认使用文件存储。
即`application/config.php`中`cache`的`type`是`File`,而`session`的`type`是空。
可以改用Redis作为缓存和session的存储,效率更高。在分布式的环境中,使用Redis来存储,可以保证数据的一致性和会话的一致性。
Nginx服务器配置ThinkPHP5站点,包括像FastAdmin这种使用ThinkPHP5的框架。
在配置上主要有三点:
1. PHP文件转发
2. 重写规则
3. PATHINFO模式的处理
ThinkPHP6的安装参考官方安装文档,使用composer安装。
安装稳定版
年后曾给自己定了一张2020年产出目标清单,其中一项是PHP插件开发,基于ThinkPHP的某个框架,不久前这个目标给划掉了。
这里涉及到一个问题,团队开发的模式。
自己虽从业PHP开发时间不短,但所在的都是小公司,小团队,后台开发人员规模多在5人以内,而大多数时候,是一人负责一个项目,至少也是一个完整的功能模块,极少有两个共同开发一个功能的情况,所以没有更深层的团队开发经验。
FastAdmin里的关联查询继承自ThinkPHP5,借助它可以实现列表中关联表ID对应的字段显示,还可以实现更为方便的模糊搜索。
比如`user_log`表中,`user_id`字段对应是的`user`表中的`id`,我们要显示和搜索`user`中的`username`字段,就可以这么做。
`UserLog`控制器对应的Model文件,添加内容如下
ThinkPHP5默认不允许跨域,需要修改下header项。
在 `public/index.php`中,`define`之前加上