Apache 服务器配置

1、防止直接访问文件

# 在上传目录中添加 .htaccess 文件
<FilesMatch “\.(php|pl|py|jsp|asp|exe|cgi)$”>
Order Allow,Deny
Deny from all
</FilesMatch>

这段配置将阻止对上传目录中具有特定扩展名(如 PHP、Perl、Python 等)的文件的直接访问。

2、禁止目录浏览

# 在上传目录中添加 .htaccess 文件
Options -Indexes

3、限制访问权限

# 在上传目录中添加 .htaccess 文件
Order Deny,Allow
Deny from all
Allow from 127.0.0.1

这将仅允许来自本地(如开发环境)的请求访问上传目录。根据需要修改 Allow from 的值来允许特定 IP 地址或范围。

4、应用最小权限原则

确保上传目录的文件权限设置为最低限度,只允许必要的用户访问。一般情况下,目录权限应设置为 755,文件权限应设置为 644。

5、定期审计和监控

定期审计上传目录中的文件,确保没有不必要或可疑的文件。监控文件活动以发现潜在的安全问题。

php 配置

1、限制文件大小

限制文件上传的最大大小,以防止滥用:

// 在 php.ini 中设置文件上传大小限制

upload_max_filesize = 2M
post_max_size = 2M

//也可以在 .htaccess 文件中设置:

php_value upload_max_filesize 2M
php_value post_max_size 2M

php 代码上传

1、限制上传的文件类型

<?php
$allowedTypes = [‘image/jpeg’, ‘image/png’, ‘image/gif’];
$fileType = $_FILES[‘uploadedFile’][‘type’];

if (!in_array($fileType, $allowedTypes)) {
die(“不允许上传的文件类型”);
}

// 继续处理上传文件
?>

2、使用随机数

避免使用用户提供的文件名来保存文件。使用随机生成的文件名来减少预测性攻击的风险:

<?php
$randomName = uniqid() . ‘.’ . pathinfo($_FILES[‘uploadedFile’][‘name’], PATHINFO_EXTENSION);
move_uploaded_file($_FILES[‘uploadedFile’][‘tmp_name’], ‘/path/to/uploads/’ . $randomName);
?>

使用防病毒扫描

作者 admin

百度广告效果展示