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

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算法大模型

在这里插入图片描述

在这里插入图片描述

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

相关文章:

  • SGMEA: Structure-Guided Multimodal Entity Alignment
  • 【AWS入门】AWS云计算简介
  • 文档搜索引擎
  • PyTorch使用-张量数值计算
  • element-plus中DatePicker 日期选择器组件的使用
  • 【GPT入门】第24课 langfuse介绍
  • An Introduction to Stable Diffusion
  • 【Linux我做主】基础命令完全指南下篇
  • 规模效应的三重边界:大白话解读-deepseek为例
  • HR9110 玩具单通道直流电机驱动器
  • 【Go语言圣经2.4】
  • latex bib文件参考文献去重
  • 二、vtkCommand的使用
  • Android 14 Telephony 网络选择功能介绍
  • [MoeCTF 2021]babyRCE
  • 二.使用ffmpeg对原始音频数据重采样并进行AAC编码
  • C++基础笔记
  • Matlab 汽车悬架系统动力学建模与仿真
  • Flask中使用with语句手动加载应用上下文
  • 【人工智能基础2】机器学习、深度学习总结
  • 宿迁哪家做网站推广/百度排名优化咨询电话
  • 报社网站开发做什么/百度app客服电话
  • 做个自己的网站需要多少钱/seo jsbapp9
  • 做电脑网站步骤/域名注册商有哪些
  • 大连网站建设渠道/seo 推广怎么做
  • 模板网站 建设教材/痘痘怎么去除效果好