| 项目 | 详情 |
|---|---|
| 审查日期 | 2026年5月19日 |
| 审查范围 | Dockerfile、docker-compose、Nginx、PHP配置、定时任务、启动脚本 |
| 发现问题数 | 23个 |
| 高风险问题 | 6个 |
| 中风险问题 | 10个 |
| 低风险问题 | 7个 |
文件位置:Dockerfile
FROM php:7.3-fpm-alpine
CMD ["/bin/sh", "/usr/local/bin/up.sh", "/app/www/new_sdk/crontab.sh"]
COPY . /app
.env、密钥文件等.dockerignore 排除敏感文件&& php /tmp/composer-setup.php --no-ansi --install-dir=/usr/local/bin --filename=composer --snapshot
--snapshot 安装非稳定版本--snapshot 参数文件位置:docker-compose.yml
services:
new_sdk:
build: .
deploy.resources.limitsrestart: unless-stoppedports:
- "66:80"
- "67:443"
文件位置:nginx/nginx.conf, nginx/default.conf, nginx/https.conf, nginx/sdkapi.qmgames.cn.conf
client_max_body_size 2048M; # default.conf
client_max_body_size 2048M; # sdkapi.qmgames.cn.conf
X-Frame-Options - 防止点击劫持X-Content-Type-Options - 防止 MIME 类型嗅探X-XSS-Protection - XSS 过滤Content-Security-Policy - 内容安全策略Strict-Transport-Security - HSTSssl_certificate /app/key/sdkapi.qmgames.cn.pem;
ssl_certificate_key /app/key/sdkapi.qmgames.cn.key;
ssl_protocols - 应只允许 TLSv1.2+ssl_ciphers - 应使用强密码套件ssl_session_timeoutssl_stapling - OCSP 装订limit_req_zone 和 limit_conn_zoneserver_name devsdkapi.7dgame.cn devsdkadmin.7dgame.cn ...;
文件位置:php-fpm/php-ini-overrides.ini
upload_max_filesize = 1024M
opcache.enable= 0
expose_php = Off # 不暴露 PHP 版本信息
文件位置:crontabs/crontabfile.txt
* * * * * bash /app/script/pay_timeout.sh
* * * * * sleep 30; bash /app/script/pay_timeout.sh
#!/bin/sh
# cd /app/www/new_sdk/
# su www-data -s /usr/local/bin/php artisan command:jiubidetail >> /app/script/jiubidetail.log
# sh /app/www/push_websocketstart.sh >>
文件位置:php-fpm/up.sh
nohup php-fpm > /var/log/php-fpm.log 2>&1 &
chown www-data -R /app/www/new_sdk &
& 后台执行 chown&,确保权限设置完成后再启动服务文件位置:www/new_sdk/public/index.php
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: *");
ini_set('default_socket_timeout', -1);
| 序号 | 问题 | 位置 |
|---|---|---|
| 1 | PHP 7.3 EOL | Dockerfile:1 |
| 2 | root 用户运行 | Dockerfile:78 |
| 3 | 敏感文件 COPY | Dockerfile:66 |
| 4 | 资源限制缺失 | docker-compose.yml |
| 5 | 安全响应头缺失 | nginx/*.conf |
| 6 | CORS 过于宽松 | public/index.php:14-18 |
| 序号 | 问题 | 位置 |
|---|---|---|
| 1 | Composer snapshot | Dockerfile:55 |
| 2 | client_max_body_size 过大 | nginx/default.conf:6 |
| 3 | SSL 配置不完整 | nginx/https.conf |
| 4 | 缺少 Rate Limiting | nginx/*.conf |
| 5 | OPcache 禁用 | php-ini-overrides.ini:12 |
| 6 | upload_max_filesize 过大 | php-ini-overrides.ini:1 |
| 7 | PHP-FPM 后台运行 | php-fpm/up.sh:3 |
| 8 | chown 后台执行 | php-fpm/up.sh:5 |
| 9 | pay_timeout 并发风险 | crontabs/crontabfile.txt:6-7 |
| 10 | Socket 超时禁用 | public/index.php:20 |
| 序号 | 问题 | 位置 |
|---|---|---|
| 1 | 缺少健康检查 | docker-compose.yml |
| 2 | 缺少重启策略 | docker-compose.yml |
| 3 | 非标准端口 | docker-compose.yml:10-11 |
| 4 | 开发域名暴露 | nginx/default.conf:4 |
| 5 | daily.sh 空脚本 | script/daily.sh |
| 6 | 缺少多阶段构建 | Dockerfile |
| 7 | 缺少 .dockerignore | 项目根目录 |
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';" always;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
.env
.env_*
.git
.gitignore
.idea
*.md
key/
logs/
runtime/
vendor/
审查报告生成时间:2026年5月19日