当前位置: 首页 > article >正文

Web开发-PHP应用鉴别修复AI算法流量检测PHP.INI通用过滤内置函数

知识点:
1、安全开发-原生PHP-PHP.INI安全
2、安全开发-原生PHP-全局文件&单函数
3、安全开发-原生PHP-流量检测&AI算法

一、演示案例-WEB开发-修复方案-PHP.INI配置

在这里插入图片描述
在这里插入图片描述
文章参考:
https://www.yisu.com/ask/28100386.html
https://blog.csdn.net/u014265398/article/details/109700309
https://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/23/2222105.html

安全模式-safe_mode(相关命令执行函数会被禁用)

5.4.0以上版本已被移除
在这里插入图片描述

路径访问 open_basedir 限制文件操作安全(遍历、读取等)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

禁用函数 disable_function 升级版安全模式,自定义限制函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

魔术引号转义 magic_quotes_gpc

5.4.0以上版本已被移除
在这里插入图片描述

数据库访问次数 max_connections 防止数据库爆破

禁用远程执行 allow_url_include allow_url_fopen 远程文件包含开关

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安全会话管理 session.cookie_httponly、session.cookie_secure

在这里插入图片描述

二、演示案例-WEB开发-修复方案-单函数&全局文件

代码-内置函数

检测:数据的类型差异,数据的固定内容
缺点:当要过滤的变量很多的时候,不可能一个一个写这些内置函数,这时候就可以用到全局文件(单独写一个过滤文件,其他脚本文件则调用这个过滤文件的函数即可)
gettype()获取变量的类型
is_float()检测变量是否是浮点型
is_bool()检测变量是否是布尔型
is_int()检测变量是否是整数
is_null()检测变量是否为NULL
is_numeric()检测变量是否为数字或数字字符串
is_object()检测变量是否是一个对象
is_resource()检测变量是否为资源类型
is_scalar()检测变量是否是一个标量
is_string()检测变量是否是字符串
is_array()检测变量是否是数组
filter_var()使用特定的过滤器过滤一个变量
FILTER_SANITIZE_STRING 过滤器可以过滤HTML标签和特殊字符
FILTER_SANITIZE_NUMBER_INT 过滤器可过滤非整数字符
FILTER_SANITIZE_URL 过滤器用于过滤URL中的非法字符
FILTER_VALIDATE_EMAIL 过滤器来验证电子邮件地址的有效性

无过滤导致正常sql注入
在这里插入图片描述
在这里插入图片描述

filter_var() // 使用特定的过滤器过滤一个变量

FILTER_SANITIZE_STRING 过滤器可以过滤HTML标签和特殊字符
FILTER_SANITIZE_NUMBER_INT 过滤器可过滤非整数字符
在这里插入图片描述
在这里插入图片描述
FILTER_SANITIZE_URL 过滤器用于过滤URL中的非法字符
FILTER_VALIDATE_EMAIL 过滤器来验证电子邮件地址的有效性

is_numeric() // 检测变量是否为数字或数字字符串

在这里插入图片描述

is_string()// 检测变量是否是字符串

代码-内置函数-SQL注入过滤

Addslashes()返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号()、双引号()、反斜线()与NULL字符)。
stripslashes()反引用一个引用字符串,如果magic_quotes_sybase项开启,反斜线将被去除,但是两个反斜线将会被替换成一个。
addcslashes()返回字符串,该字符串在属于参数charlist列表中的字符前都加上了反斜线。
stripcslashes()返回反转义后的字符串。可识别类似C语言的\n,r,…八进制以及十六进制的描述。
mysql_escape_string()此函数并不转义%和_。作用和mysql real escape_string()基本一样
mysql_real_escape_string()调用mysql库的函数在以下字符前添加反斜杠:x00、\n、\r、\、x1a
PHP魔术引号当打开时,所有的'(单引号),”(双引号)(反斜线)和NULL字符都会被自动加上一个反斜线进行转义。这和addslashes()作用完全相同。
预编译机制 固定执行语句,无论在这个执行语句加什么内容都不会改变执行语句本身

addslashes()

返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号()、双引号(”)、反斜线()与NULL字符)。
在这里插入图片描述

在这里插入图片描述

预编译

固定执行语句,无论在这个执行语句加什么内容都不会改变执行语句本身
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

代码-内置函数-XSS跨站过滤

在这里插入图片描述
在这里插入图片描述

filter_var() 使用特定的过滤器过滤一个变量

FILTER_SANITIZE_STRING 过滤器可以过滤HTML标签和特殊字符
在这里插入图片描述
在这里插入图片描述

htmlspecialchars() 函数把预定义的字符转换为HTML实体

在这里插入图片描述

在这里插入图片描述

strip_tags()函数剥去字符串中的HTML、XML以及PHP的标签

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

引用-全局文件-关键内容检测

专门写一个过滤文件,里面过滤各种各样漏洞的关键字内容等。其他脚本则调用这个过滤函数即可完成过滤检测。

文件上传-黑名单/白名单

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

SQL注入

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

XSS跨站

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、演示案例-WEB开发-修复方案-流量检测-规则&AI算法大模型

模仿流量检测(基于规则或AI算法)
演示:Python Flask+PHP Curl+训练大模型
客户端请求数据 -> 中间件搭建平台 -> 服务器代码文件处理
客户端请求数据 -> WAF或流量监控 (规则,AI模型算法)-> 正常数据 -> 中间件搭建平台 -> 服务器代码文件处理
客户端请求数据 -> WAF或流量监控 (规则,AI模型算法)-> 异常数据 -> 截止

基于规则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AI算法大模型

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/588917.html

相关文章:

  • Redis系列:深入理解缓存穿透、缓存击穿、缓存雪崩及其解决方案
  • STM32外部中断
  • 小程序网络大文件缓存方案
  • Qt MainWindow简单例子(文本编辑)
  • k8s 修改节点驱逐阈值
  • 笔记:基于springboot+ShardingSphere-jdbc5.0.0的分库分表(偏yml配置)
  • 考研系列-408真题计算机网络篇(18-23)
  • JSON 语法详解
  • 用Embassy库编写的自动化下载程序
  • C++28--特殊类设计
  • 汽车零部件行业研发管理体系化建设:全星研发管理 APQP 软件系统来助力
  • 扩散模型DDPM
  • 全国医院数据可视化分析系统
  • 以 ArcGIS Pro 为笔,绘就水墨地图画卷
  • C/C++实现工厂模板设计模式(Factory Pattern)
  • 如何配置 Docker 以实现无需 sudo 使用
  • 《解锁 Lodash:简化复杂逻辑的实战技巧》​
  • 浏览器对一个资源设置了缓存,如何清除缓存,且后续请求不命中缓存
  • 深入浅出TCP与UDP:三次握手、四次挥手及面试通关指南
  • 哈尔滨算力服务器托管推荐-青蛙云