大部分PHP程序员,都搞不懂如何安全代码部署

article/2025/9/22 21:24:46

在这里插入图片描述

总结

1.创建一个普通用户账户
2.先设置所有文件夹为只读不可写

sudo chmod -R a-w /path/to/directory

3.再把php执行的用户组加上

sudo chown -R username:groupname /path/to/php/files

4.再把可执行的文件加入

sudo chmod -R 755 /path/to/php/files

关于权限 理清PHP在Linxu下执行时的文件权限

如果你的网站还是以777 作为权限,那么你的服务器将开放给任何人,任何人可以在目录中执行脚本。

看过一些别人的外包项目,竟然整个项目的权限设置为777 ,其实是非常可怕的,黑客可以上传文件到任意目录,并执行该文件。

这样做是可怕的,一些程序员可以利用一些工具扫描漏洞,像很多php程序员在简历中说,破解过php,植入后门等,都是因为前期的php程序员的门槛低,对于安全意识薄弱,造成很多网站都可以 get Shell。

如何正确的设置php 运行目录?我这边总结一些方法,分享给大家。

设置目录的所有者

php程序一般是给nginx 或者 apche 调用的,所以系统会有一个 www(视情况而,有些是www-data) 的用户和用户组

sudo chown -R www-data:www-data /path/to/your/laravel/root/directory

但是我们如果使用 php artisan 命令,或者什么时候你想要用FTP传输文件到服务器,这样设置权限会报错的,因为这个目录的权限是属于www-data:www-data 用户和用户组的。你应该要添加到web 的用户组中。(ubantu叫ubantu,vagrant叫vagrant)

sudo usermod -a -G www-data ubuntu

设置权限

首先给自己的程序还原一下最初

给php框架所需要的读写权限。

Laravel:

sudo chgrp -R www-data storage bootstrap/cache
sudo chmod -R ug+rwx storage bootstrap/cache

如果是Tp框架:

sudo chgrp -R www-data runtime
sudo chmod -R ug+rwx runtime

这样你的php框架就相对安全了。

上传权限

我们的小体量的程序有些需要上传图片或文件到服务器(但是推荐上传到OSS或者七牛等第三方储存方案。)

防止上传的程序被恶意攻击程序,我们可以在Nginx或者Apache 拒绝运行php脚本

Nginx:

location ~ ^/(uploads|assets)/.*\.(php|php5|jsp)$ {  deny all;
} 

Apache:

RewriteEngine on RewriteCond % !^$
RewriteRule uploads/(.*).(php)$ – [F]

这般如此,你的程序就加上了一层厚厚的盾了

后续:
大部分PHP程序员,都搞不懂如何安全代码部署【二】(nginx篇)

相关
服务器上发现了一个木马程序!
linux 更改文件夹及所有子文件权限为www


http://chatgpt.dhexx.cn/article/Swn5vr8v.shtml

相关文章

PHP项目部署到云服务器(CentOS+HTTP+PHP+MYSQL)

如何将写好的项目部署到云服务器,让外界可以通过互联网访问项目网站。以下使用的是腾讯云服务器操作,系统环境为CentOS7.9。 一、购买云服务器 打开腾讯云官网,注册好自己的平台账号。如果是新人的话去新人专区购买服务器,性价比…

phpstudy搭建nginx+php服务器显示php网页

下载了phpstudy-all.bin一键安装包,管理员执行./phpstudy-all.bin安装完成后,在火狐浏览器上输入:localhost 测试服务器是否从成功。 遇到的问题: 默认打开的web页面是/usr/share/nginx/www/index.html页面,如下 初次尝试解决&a…

php如何启动内置web服务器

前言: PHP从5.4开始,就提供了一个内置的web服务器。 当然这个主要是用来做本地的开发用的。 不能用于线上环境。 现在我就介绍一下这个工具如何使用。 前提: php已经加入到本地电脑的环境变量中 命令中输入: cd 项目目录 php -S…

公司官网建站笔记(二):在云服务器部署PHP服务(公网访问首页)

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/124659175 各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究 红胖子(红模仿)的博…

阿里云ECS服务器Linux环境下配置php服务器(三)--项目部署篇

在前两篇里,我们分别介绍了如何购买阿里云服务器,安装基本软件和配置(请看阿里云ECS服务器Linux环境下配置php服务器(一)--基础配置篇) 以及如何安装使用phpMyAdmin(请看阿里云ECS服务器Linux环…

阿里云ECS服务器Linux环境下配置php服务器(二)--phpMyAdmin篇

上一篇讲了php服务器的基本配置,我们安装了apache,php,还有mysql,最后还跑通了一个非常简单的php页面,有兴趣的朋友可以看我的这篇博客: 阿里云ECS服务器Linux环境下配置php服务器(一) 这一次我们来继续说…

微信小程序wx.uploadFile(上传文件)PHP服务器获取formData的数据

例如下面的代码是微信小程序上传图片的伪代码 wx.chooseImage({success: function(res) {var tempFilePaths res.tempFilePathswx.uploadFile({url: https://example.weixin.qq.com/upload, //仅为示例,非真实的接口地址filePath: tempFilePaths[0],name: file,fo…

树莓派4B搭建轻量级Web服务器 (Nginx,sqlite,php)

树莓派硬件的配置,包括外置硬盘的挂载和设置,系统的烧录和设置就略了,详情见第一篇文章。 一:更新源安装Nginx服务器 sudo apt-get updatesudo apt-get install nginx二: 启动Nginx服务器 //启动服务器的两种方式sudo…

一、用XAMPP搭建本地PHP服务器,运行php文件

一、XAMPP下载安装 点击下载,下载完成之后执行安装文件安装,一路next,完成。运行界面如下: 二、启动 这里,我是把XAMPP安装在了D:\XAMPP文件夹下。 点击第一行Apache后面的Start是启动XAMPP本地虚拟机(默认端口8080)…

Android手机利用KSWEB+端口转发搭建PHP服务器

Android手机利用KSWEB端口转发搭建PHP服务器 转载来自:https://golthr.gitee.io/articles/202002281619/ KSWEB是一款基于Android的开源服务器,可通过Lighttpd/Nginx/ApachePHPMySql在Android手机上搭建起自己的私人PHP WEB服务器。软件提供了上述功能…

PHP搭建服务器

1. 认识互联网 思考:平常我们上网的时候是怎么实现的? 引入:上网其实打开浏览器,然后输入一个URL,最后就看到了网站打开的效果。 1.1. 普通用户访问网站【了解】 定义:URL:Uniformed Resource L…

PHP本地web服务器搭建教程(通俗易懂版)

现在是北京时间21点22分;忙碌了一天的小菜鸡开始写起了博文。在被搭建本地服务器折磨了一天后终于成功的本人,怀着激动的心情写下了这篇博文,也算是写一篇学习笔记了,希望本篇博文能对想搭一个本地服务器的小伙伴们有所帮助。 好…

PHP(1)搭建服务器

PHP(1)搭建服务器 一、配置并安装Apache1. 配置2. 安装3. 验证4. 排错5. 重启6. 添加环境变量 二、安装PHP1. 配置2. 验证 三、Apache加载PHP四、安装虚拟主机 一、配置并安装Apache 1. 配置 下载 Apache Download解压 将解压后的文件夹复制到指定目录…

微信小程序网络请求服务器php接口获取数据库数据信息

前言 在写php接口之前 需要事先搭建好环境 1 拥有一台服务器 2 服务器安装好宝塔 3 搭建安装好Apache套件(包括php Apache MySQL数据库等等) 4 已经开放相应的端口 5 安装微信开发者工具 如果小白没关系,下面的视频会一步一步的说明很详细&…

Android Studio —— ArrayAdapter

效果 代码过程 代码 <?xml version"1.0" encoding"utf-8"?> <TextView xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:gravity"center_vertical"andro…

java arrayadapter_简单好用的Adapter---ArrayAdapter详解

拖延症最可怕的地方就是:就算自己这边没有拖延&#xff0c;但对方也会拖延&#xff0c;进而导致自己这边也开始拖延起来&#xff01;现在这个项目我这边已经是完工了&#xff0c;但是对方迟迟没有搞定&#xff0c;导致整个项目无法提交。 这就是拖延症的可怕&#xff1a;我们不…

ArrayAdapter SimpleAdapter

1.ArrayAdapter 数组适配器 用于简单的文字列表 2.SimpleAdapter 简单适配器 用户条目只有两个控件的列表 3.条目点击事件 ListView 一般用 setOnItemClickListener() 这个方法属于 AdapterView 1.先得到适配器 getAdapter() 2.在得到所在位置的条目的数…

ArrayAdapter使用示例

1&#xff09;ArrayAdapter使用示例&#xff1a; 运行效果图&#xff1a; 代码实现&#xff1a; public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.…

Android Listview ArrayAdapter示例

ListView 的使用大致上可以分为四个步骤&#xff1a;添加 ListView 组件、存储数据、设置列表项item的布局文件、加载数据/资源进行显示、添加监听。 这篇文章主要讲一下最简单的ArrayAdapter的用法 示例效果如下&#xff1a; 主layout文件 <?xml version"1.0"…

java arrayadapter_「arrayadapter」Android之ArrayAdapter(数组适配器)的三种方法 - seo实验室...

arrayadapter arrayadapter数组适配器用于绑定格式单一的数据&#xff0c;数据源可以是集合或者数组 列表视图(listview)以垂直的形式列出需要显示的列表项。 实现过程&#xff1a;新建适配器->添加数据源到适配器->视图加载适配器 第一种&#xff1a;直接用ListView组件…