第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.pswp.cn/web/66282.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66282.shtml
英文地址,請注明出處:http://en.pswp.cn/web/66282.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習之決策樹(DecisionTree)

決策樹中選擇哪一個特征進行分裂&#xff0c;稱之為特征選擇。 特征選擇是找出某一個特征使得分裂后兩邊的樣本都有最好的“歸宿”&#xff0c;即左邊分支的樣本屬于一個類別、右邊分支的樣本屬于另外一個類別&#xff0c;左邊和右邊分支包含的樣本盡可能分屬同一類別&#xff…

進階——十六屆藍橋杯嵌入式熟練度練習(按鍵+LCD)

高亮&#xff08;一&#xff09; 聲明 char buf[21];unsigned char upled0x04;uint8_t key_val;uint8_t key_down,key_up,key_old;uint32_t key_time;uint8_t key_temp,key_flag;uint8_t line_flag; 按鍵代碼 void key_proc(void) { key_valkey_scan();key_downkey_val&…

基于PHP的校園新聞發布管理

摘要 近年來&#xff0c;隨著互聯網技術的迅速發展&#xff0c;人們獲取新聞的渠道也變得越來越多樣化&#xff0c;已經不再拘束于傳統的報紙、期刊、雜志等紙質化的方式&#xff0c;而是通過網絡滿足了人們獲得第一手新聞的愿望&#xff0c;這樣更加有助于實現新聞的規范化管…

MySQL程序之:使用DNS SRV記錄連接到服務器

在域名系統&#xff08;DNS&#xff09;中&#xff0c;SRV記錄&#xff08;服務位置記錄&#xff09;是一種資源記錄&#xff0c;它使客戶端能夠指定指示服務、協議和領域的名稱。DNS查找該名稱會返回一個回復&#xff0c;其中包含該領域中提供所需服務的多個可用服務器的名稱。…

代碼合并沖突解決push不上去的問題

環境&#xff1a;【IntelliJ IDEA】 【Gerrit】 1、錯誤信息 代碼合并&#xff0c;迭代1合并到迭代2&#xff0c;解決沖突后&#xff0c;依然push不上去&#xff0c;報錯信息如下&#xff1a; remote: Processing changes: refs: 1 remote: Processing changes: refs…

opencv projectPoints函數 computeCorrespondEpilines函數 undistortPoints函數

opencv projectPoints函數 cv::projectPoints 是 OpenCV 中用于將三維點投影到二維圖像平面的函數。它通常用于計算在相機坐標系下的三維點在圖像坐標系中的位置&#xff0c;考慮了相機的內參和外參。 函數原型 void cv::projectPoints(InputArray objectPoints,InputArray …

從玩具到工業控制--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;因此設置方…

【Linux】【Vim】vim編輯器的用法

一、vim簡介 Vim是一款功能強大且高度可定制的文本編輯器&#xff0c;廣泛應用于Linux 和 Unix系統中。 它不僅繼承了vi編輯器的所有特性&#xff0c;還增加了許多新的功能&#xff0c;如語法高亮、代碼折疊、多級撤銷等。 Vim有三種主要的工作模式&#xff1a; 命令模式&am…

構建優雅、高效的 Nodejs 命令行工具 - Archons

目錄 項目簡介安裝基本用法樣例創建一個簡單的命令行工具使用archons上下文創建進度條 最后 項目地址: https://github.com/noctisynth/archons Bug反饋或功能請求&#xff1a;https://github.com/noctisynth/archons/issues 項目簡介 Archons意思是“執政官”&#xff0c;我使…

怎么投稿各大媒體網站?如何快速辨別一家媒體是否適合自己?

在做軟文營銷時&#xff0c;除去在官號和子賬號上投稿外&#xff0c;怎么投稿各大媒體網站是困擾中小企業主的一大難題。沒有多余賬號、運營成本太高&#xff0c;讓不少想做全平臺推廣的朋友止步于此。為了解決這些問題&#xff0c;今天就讓小編來分享一下&#xff0c;怎么在各…

MES設備日志采集工具

永久免費: <下載> <使用說明> 用途 定時全量或增量采集工控機,電腦文件或日志. 優勢 開箱即用: 解壓直接運行.不需額外下載.管理設備: 后臺統一管理客戶端.無人值守: 客戶端自啟動,自更新.穩定安全: 架構簡單,兼容性好,通過授權控制訪問. 架構 技術架構: Asp…

rhel7.9利用有網絡環境打包ansible

RHEL7.9激活(可省略) # 注冊 subscription-manager register --usernameyour_username --passwordyour_password --auto-attach # 查看訂閱狀態 subscription-manager list # 將 “enabled1” 改為 “enabled0” vi /etc/yum/pluginconf.d/subscription-manager.conf 配置阿…

Formality:參考設計/實現設計以及頂層設計

相關閱讀 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482??? Formality存在兩個重要的概念&#xff1a;參考設計/實現設計和頂層設計&#xff0c;本文就將對此進行詳細闡述。參考設計/實現設計是中兩個重要的全局概念&am…