服务器安全
服务器安全涉及目录安全、站点配置、安全组等多方面。
目录安全
目录安全是服务器运维中一个重要的环境,请勿忽略目录安全的重要性。
我们建议在生产环境只开放 upload
和 runtime
目录的读写权限,其次要关闭 upload
等目录执行PHP/PHP5脚本的权限,
因为很多时候用户上传恶意脚本,而服务端 upload
目录又未屏蔽PHP,导致用户数据泄漏丢失。
通常情况推荐小白用户使用宝塔面板运维,可直接可视化配置脚本执行权限或直接在终端使用命令行来解决目录权限的问题
chown www:www /www/wwwroot/yoursite -R
chmod 555 /www/wwwroot/yoursite -R
chmod u+w /www/wwwroot/yoursite/runtime -R
chmod u+w /www/wwwroot/yoursite/public/upload -R
WEB配置
Nginx可以通过以下配置禁止PHP脚本执行
location ~ ^/(upload|static)/.*\.(php|php5|jsp)$ {
deny all;
}
Apache可以通过在 .htaccess
中配置来禁用PHP脚本执行
RewriteEngine on RewriteCond % !^$
RewriteRule upload/(.*).(php)$ – [F]
或使用
<Directory "/www/yoursite/public/upload">
<Files ~ ".php">
Order allow,deny
Deny from all
</Files>
</Directory>
注意:由于我们采用cli常驻内存模式,一旦服务启动后,新增加的PHP文件在服务重启之前是无法加载的,所以请勿开启webman执行单个PHP文件配置
例如: fastcgi_param PHP_VALUE "open_basedir=/www/wwwroot/yoursite/:/tmp/:/proc/";
通常也建议修改 php.ini
,禁用不安全的函数,配置如 disable_functions = passthru,exec,system,chroot,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru
关闭调试
首先打开根目录 .env
,关闭调试模式
APP_DEBUG 设置为 0
最后更新时间:2022-08-21 18:38:462777 https://doc.swiftadmin.net/help/21.html