简单安全防护
简单安全防护
一、服务器防护#
1. 端口防护#
尽量将端口禁用,尽量不要将端口暴露在公网,尽量仅供127.0.0.1访问
如非必要,尽量不要将服务暴露在公网,尤其是数据库等服务
设置连续登录失败禁用一段时间,防爆破
2. 网站防护#
攻击者一般直接使用ip来攻击网站,可以将ip访问的默认网站只写一个首页
上述不利于搜索引擎收录,可以将搜索引擎的域名加入白名单使用Nginx转发
避免Js操作cookie,开启HTTP_ONLY
3. web容器配置#
Nginx提供限制访问模块,防护CC与DDOS
limit_conn_zone $binary_remote_addr
zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m;
limit_req_zone $binary_remote_addr zone=allips:10m rate=10r/s;
4. 独立用户#
服务器设置用户启动某服务,非该服务用户不允许访问与执行
二、PHP防护#
1. 禁用系统函数#
非常危险的函数
eval
system
exec
shell_exec
pcntl_exec
pcntl_fork
pcntl_exec
强烈建议禁止的函数
passthru
putenv
chroot
chgrp
chown
popen
proc_open
ini_alter
ini_restore
dl
openlog
syslog
readlink
symlink
popepassthru
pcntl_alarm
pcntl_waitpid
pcntl_wait
pcntl_wifexited
pcntl_wifstopped
pcntl_wifsignaled
pcntl_wifcontinued
pcntl_wexitstatus
pcntl_wtermsig
pcntl_wstopsig
pcntl_signal
pcntl_signal_dispatch
pcntl_get_last_error
pcntl_strerror
pcntl_sigprocmask
pcntl_sigwaitinfo
pcntl_sigtimedwait
pcntl_getpriority
pcntl_setpriority
imap_open
apache_setenv
2. ThinkPHP#
- 及时打补丁,ThinkPHP发布的漏洞警告务必及时跟进打补丁
- 设置全局过滤规则 DEFAULT_FILTER ,防止XSS、SQL注入等
- 查询条件尽量使用数组方式,如果必须使用字符串,那么建议使用预处理机制
- 启动目录务必设置在内部目录,即TP建议的public目录下,防止恶意浏览扫描目录,并且public目录下除了静态资源和启动入口外不要放置其他文件
- 上传文件使用TP提供的Think\Upload类,提供对文件的类型、后缀、大小及上传文件的合法检查
- 使用强制路由模式,在route.php中配置可访问的路由,未定义的路由访问一律会自动抛出异常
- 对于有明确类型的请求变量,可以在使用param方法的时候使用类型强制转换
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理