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

#知识点

1、安全开发-原生PHP-PHP.INI安全

2、安全开发-原生PHP-全局文件&单函数

3、安全开发-原生PHP-流量检测&AI算法

一、通用-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 ->命令执行函数会被禁用

*路径访问 open_basedir ->限制文件操作安全(遍历等)->可控制webshell后门查看到的路径,可以阻止后门遍历C盘、D盘

*禁用函数 disable_function ->升级版安全模式,自定义限制函数->可限制php一些常见的exec()等命令执行函数

*魔术引号转义 magic_quotes_gpc ->同理下面的sql过滤第一个函数Addslashes()->为了数据库查询语句等的需要在某些字符前加上了反斜线(进行转义)。这些字符是单引号()、双引号(”)、反斜线()与NULL字符)。

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

禁用远程执行 allow_url_include,allow_url_fopen->远程包含开关等

*安全会话管理 session.cookie_httponly session.cookie_secure->防止跨站脚本攻击(XSS)和中间人攻击(MITM)

二、引用-全局文件

1、关键内容检测(黑白名单)

文件上传,SQL注入,XSS跨站等

①文件上传黑名单过滤策略

文件上传白名单过滤策略

2、模仿流量检测(模仿WAF产品(基于规则或AI算法)

演示:Python Flask+PHP Curl+训练大模型

①客户端请求数据 -> 中间件搭建平台 -> 服务器代码文件处理

②客户端请求数据 -> WAF或流量监控 (规则,AI模型算法)-> 正常数据 -> 中间件搭建平台 -> 服务器代码文件处理

③客户端请求数据 -> WAF或流量监控 (规则,AI模型算法)-> 异常数据 -> 截止

a、常规设置规则进行检测:

python代码监测:在本地架设了一个服务,类似WAF产品(WAF或流量监控 (通过设置检测规则,黑名单白名单进行过滤))->数据会先到WAF(也就是此处的python脚本)->先检测一遍->如果数据正常->再传输到中间件平台(如apache)->再到服务器进行代码数据处理

输入xss攻击特征payload->被python检测到了

b、通过AI算法学习,生成检测

先通过样本,通过算法,提取特征,生成检测的pkl文件

开启python脚本检测本地5000端口->模拟WAF产品

输入xss攻击特征payload->被python检测到了

AI算法检测(于规则检测写法的区别)->在于通过样本自动学习->生成skl(用于检测攻击特征的文件)->进行规则检测过滤

这样的AI模型算法怎样写?->chatgpt

三、代码-内置函数

检测:数据的类型差异,数据的固定内容->针对类型和固定数据内容进行过滤->缺点在于过滤单一、有限->麻烦

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注入过滤:

1、Addslashes()返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线(进行转义)。这些字符是单引号()、双引号(”)、反斜线()与NULL字符)。

2、stripslashes()反引用一个引用字符串,如果magic_quotes_sybase项开启,反斜线将被去除,但是两个反斜线将会被替换成一个。

3、addcslashes()返回字符串,该字符串在属于参数charlist列表中的字符前都加上了反斜线。

4、stripcslashes()返回反转义后的字符串。可识别类似C语言的\n,r,…八进制以及十六进制的描述。

5、mysql_escape_string()此函数并不转义%和_。作用和mysql real escape_string()基本一样

6、mysql_real_escape_string()调用mysql库的函数在以下字符前添加反斜杠:x00、\n、\r、\、x1a

7、PHP魔术引号当打开时,所有的'(单引号),”(双引号),(反斜线)和NULL字符都会被自动加上一个反斜线进行转义。这和addslashes()作用完全相同。

8、预编译机制:提前固定一个模型(执行架构)不管sql注入传入的参数怎么构造,都是以固定的模型输出

演示:魔术引号<=>addslashes(),预编译等

补充:由于以上过滤sql注入方式单一,简单粗暴,我们可以采用配置sql注入过滤文件,集中多种过滤方式,提高效率,方便简洁

①写入过滤sql注入配置文件

②调用配置文件

③实操

五、XSS跨站过滤:

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

FILTER_SANITIZE_STRING 过滤器可以过滤HTML标签和特殊字符

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

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

补充:由于以上过滤xss方式单一,简单粗暴,我们可以采用配置xss过滤文件,集中多种过滤方式,提高效率,方便简洁

①写入过滤xss配置文件

②调用配置文件

③实操

六、命令执行过滤

escapeshellcmd()确保用户只执行一个命令用户可以指定不限数量的参数用户不能执行不同的命令

escapeshellarg()确保用户只传递一个参数给命令用户不能指定更多的参数一个用户不能执行不同的命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/66282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于PHP的校园新闻发布管理

摘要 近年来&#xff0c;随着互联网技术的迅速发展&#xff0c;人们获取新闻的渠道也变得越来越多样化&#xff0c;已经不再拘束于传统的报纸、期刊、杂志等纸质化的方式&#xff0c;而是通过网络满足了人们获得第一手新闻的愿望&#xff0c;这样更加有助于实现新闻的规范化管…

从玩具到工业控制--51单片机的跨界传奇【3】

在科技的浩瀚宇宙中&#xff0c;51 单片机就像一颗独特的星辰&#xff0c;散发着神秘而迷人的光芒。对于无数电子爱好者而言&#xff0c;点亮 51 单片机上的第一颗 LED 灯&#xff0c;不仅仅是一次简单的操作&#xff0c;更像是开启了一扇通往新世界的大门。这小小的 LED 灯&am…

boss直聘 __zp_stoken__ 逆向分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我删…

【日志篇】(7.6) ❀ 01. 在macOS下刷新FortiAnalyzer固件 ❀ FortiAnalyzer 日志分析

【简介】FortiAnalyzer 是 Fortinet Security Fabric 安全架构的基础&#xff0c;提供集中日志记录和分析&#xff0c;以及端到端可见性。因此&#xff0c;分析师可以更有效地管理安全状态&#xff0c;将安全流程自动化&#xff0c;并快速响应威胁。具有分析和自动化功能的集成…

Linux 内核自旋锁spinlock(一)

文章目录 前言一、自旋锁1.1 简介1.2 API1.2.1 spin_lock/spin_unlock1.2.2 spin_lock_irq/spin_unlock_irq1.2.3 spin_lock_irqsave/spin_unlock_irqstore1.2.4 spin_lock_bh/spin_unlock_bh1.2.5 补充 二、自选锁原理三、自旋锁在内核的使用3.1 struct file3.2 struct dentry…

【太古新篇,智驭未来】 SFA系统成功上线

经过双方团队的不懈努力与紧密合作&#xff0c;eBest成功帮助香港太古可乐完成了SFA系统的全面上线&#xff01; 太古可乐&#xff0c;作为饮料行业的佼佼者&#xff0c;一直以来以其卓越的品质和深入人心的品牌形象深受消费者喜爱。然而&#xff0c;在快速变化的市场环境中&am…

Web安全|渗透测试|网络安全

基础入门(P1-P5) p1概念名词 1.1域名 什么是域名&#xff1f; 域名&#xff1a;是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称&#xff0c;用于在数据传输时对计算机的定位标识&#xff08;有时也指地理位置&#xff09;。 什么是二级域名多级域名…

陈萍的设计创新:Kevlin Nexus荣获伦敦设计奖,展示品牌设计的国际化与持续创新

近日,陈萍凭借其创新设计作品 Kevlin Nexus,成功斩获 2024 伦敦设计奖。该奖项旨在表彰全球范围内的优秀设计作品,表彰设计界最完美、最前沿的成就。伦敦设计奖是全球最具权威性和影响力的设计奖项之一,其评选标准以高水准的专业性和严格性著称。作为全球设计界的顶级荣誉,伦敦…

qml DirectionalBlur详解

1、概述 DirectionalBlur是QML&#xff08;Qt Modeling Language&#xff09;中用于创建方向模糊效果的一种图形效果类型。它通过对源图像的像素进行模糊处理&#xff0c;产生一种源项目朝着模糊方向移动的感知印象。这种模糊效果被应用到每个像素的两侧&#xff0c;因此设置方…

怎么投稿各大媒体网站?如何快速辨别一家媒体是否适合自己?

在做软文营销时&#xff0c;除去在官号和子账号上投稿外&#xff0c;怎么投稿各大媒体网站是困扰中小企业主的一大难题。没有多余账号、运营成本太高&#xff0c;让不少想做全平台推广的朋友止步于此。为了解决这些问题&#xff0c;今天就让小编来分享一下&#xff0c;怎么在各…

MES设备日志采集工具

永久免费: <下载> <使用说明> 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架构: Asp…

Formality:参考设计/实现设计以及顶层设计

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482​​​ Formality存在两个重要的概念&#xff1a;参考设计/实现设计和顶层设计&#xff0c;本文就将对此进行详细阐述。参考设计/实现设计是中两个重要的全局概念&am…

国产编辑器EverEdit - 复制为RTF

1 复制为RTF 1.1 应用背景 在写产品手册或者其他文档时&#xff0c;可能会用到要将产品代码以样例的形式放到文档中&#xff0c;一般的文本编辑器拷贝粘贴到Word中也就是普通文本&#xff0c;没有语法着色&#xff0c;这样感观上不是太好&#xff0c;为了让读者的感观更好一点…

redux 结合 @reduxjs/toolkit 的使用

1&#xff0c;使用步骤 使用React Toolkit 创建 counterStore&#xff08;store目录下&#xff09; --> 为React注入store&#xff08;src下面的index&#xff09; --> React组件使用store中的数据&#xff08;组件&#xff09; 2&#xff0c;例如下面有一个简单加减的…

动态规划【打家劫舍】

今天和大家分享一下动态规划当中的打家劫舍题目&#xff0c;希望在大家刷题的时候提供一些思路 打家劫舍1&#xff1a; 题目链接&#xff1a; 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋…

【机器学习实战入门项目】使用Python创建自己的表情符号

深度学习项目入门——让你更接近数据科学的梦想 表情符号或头像是表示非语言暗示的方式。这些暗示已成为在线聊天、产品评论、品牌情感等的重要组成部分。这也促使数据科学领域越来越多的研究致力于表情驱动的故事讲述。 随着计算机视觉和深度学习的进步&#xff0c;现在可以…

BEVFusion论文阅读

1. 简介 融合激光雷达和相机的信息已经变成了3D目标检测的一个标准&#xff0c;当前的方法依赖于激光雷达传感器的点云作为查询&#xff0c;以利用图像空间的特征。然而&#xff0c;人们发现&#xff0c;这种基本假设使得当前的融合框架无法在发生 LiDAR 故障时做出任何预测&a…

OSI七层协议——分层网络协议

OSI七层协议&#xff0c;顾名思义&#xff0c;分为七层&#xff0c;实际上七层是不存在的&#xff0c;是人为的进行划分,让人更好的理解 七层协议包括&#xff0c;物理层(我),数据链路层(据),网络层(网),传输层(传输),会话层(会),表示层(表),应用层(用)(记忆口诀->我会用表…

【Mysql进阶知识】Mysql 程序的介绍、选项在命令行配置文件的使用、选项在配置文件中的语法

目录 一、程序介绍 二、mysqld--mysql服务器介绍 三、mysql - MySQL 命令行客户端 3.1 客户端介绍 3.2 mysql 客户端选项 指定选项的方式 mysql 客户端命令常用选项 在命令行中使用选项 选项(配置)文件 使用方法 选项文件位置及加载顺序 选项文件语法 使用举例&am…

wireshark抓路由器上的包 抓包路由器数据

文字目录 抓包流程概述设置抓包配置选项 设置信道设置无线数据包加密信息设置MAC地址过滤器 抓取联网过程 抓包流程概述 使用Omnipeek软件分析网络数据包的流程大概可以分为以下几个步骤&#xff1a; 扫描路由器信息&#xff0c;确定抓包信道&#xff1b;设置连接路由器的…