PHP安全防範程式模型
複製程式碼程式碼如下:
/* PHP防注入跨站V1.0
在您的頁上方新增: require(“menzhi_injection.php”);以及XSS跨站漏洞。
##################缺陷以及改進##################
程式還有很多缺陷,希望大家能幫助改進
###################參考以及鳴謝#################
Neeao'ASP SQL通用防注入程式V3.0
部分程式碼參考自Discuz!
*/
error_reporting(0);
define('MAGIC_QUOTES_$PC); jection="'|;|and|(|)|exec|insert |select|delete|update|count|*|%|chr|mid|master|truncate|or|char|declare";
$menzhi_injection = explode("|",$menzhi_injection); , '_POST', '_COOKIE','_REQUEST') as $_request) {
foreach($$_request as $_key => $_value) {
// value = strlower($_value
// value = strlower($_value } != '_' && $$_key = daddslashes($_value);
foreach($menzhi_injection as $kill_key => $kill_value) {
;
unset($_value);
exit();
}
}
//echom " }
function daddslashes($string) {
if(!MAGIC_QUOTES_GPC) {
if( is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val); 〠 }〠〠〠〠〠〠〣〜〠〠〣〠〣〠〠〣〜〠〠〠〣 〜〠〠〣〠〣〣 〜〠〠〠〠〠〣 〠〣 〜〠〠〠〠〣〣〣 〜〠〣)$. string) ;
}
}
$string = preg_replace('/&((#(d{3,5}|x[a-fA-F0-9]{4}));)/', '&\1' ,str_replace(array('&', '"', ''), array('&', '"', ''), $string));
return $string ;
}
?>
使用說明
在您的頁面頂部添加:「require(“menzhi_injection.php”);” ,即可實現通用跨站,"require(“menzhi_injection.php”);” ,即可實現通用跨站,注入通用跨站。呼叫本程序,我們使用require() 而不使用include() ,因為require()呼叫檔案如果出錯,將終止程序運行,include()並不理會。且require()呼叫檔案時,程式一運行,會先呼叫外本檔案。而inculde()則是運行到該行時才開始執行。基於函數特性,我們選擇require()。 您還可以根據實際需要自行增加或刪除$menzhi_injection變數中的過濾字符,來達到更好的防禦效果。 再者您可以自行修改程式碼,或許會有意外收穫。普通注射都可以防禦,以下測試僅供調侃,以下是對一句話木馬的測試效果:
嘿嘿,動心了就在您的頁面頂部調用吧。記住是“require(“menzhi_injection.php”);”哦。這只是提起大家興趣的噱頭,請自行測試吧。
缺陷以及待改進
由於此程序只是外部調用,只是處理了外部提交的變量,並沒有對您的應用程序作系統分析,所以存在很多局限性,請謹慎使用。 對於使用GBK編碼的程序,還存在雙位元組編碼漏洞風險,本程序雖然可以處理該漏洞。但遏止這些漏洞,還是需要從根源做起。需要處理資料庫連接文件,我們可以新增 character_set_client=binary 。 Discuz!7.0的資料庫連接類別db_mysql.class.php寫的就非常不錯,大家可以參考借鏡。當然這些並不是這個小程式所能涉及的範疇。
且此程式並沒有過濾 $_SERVER $_ENV $_FILES系統變數。例如對於$_SERVER['HTTP_X_FORWARDED_FOR']系統取得IP時,駭客可以透過劫持修改HTTP原始請求包來變更其值,而本程式是可以處理這些漏洞。但是身為程式設計師我們需要的是從根源就對外部變數處理,防患於未然,未雨綢繆吧。
程序很潦草,歡迎大家測試使用,有什麼意見建議可以留言討論。
結束語
最後祝大家學習有成,工作順利,想要獲取更多的相關文章請關注PHP中文網(www.php.cn)!

随着Web应用程序的快速发展,越来越多的开发者将目光投向了各种新兴的Web开发框架和架构设计模式。其中一个备受瞩目的设计模式就是MVVM(ModelViewViewModel)架构模式。MVVM采用了一种现代化的设计模式,通过将UI和业务逻辑相分离,使得开发人员能够更好地管理和维护应用程序。此外,MVVM减少了不必要的耦合,提高了代码的可重用性和灵活性,

“msedge.exe”指的是“Microsoft Edge”网页浏览器软件;“Microsoft Edge”是由Microsoft开发的网页浏览器,该浏览器在2015年被正式命名,并且内置在了Windows10版本中;该浏览器与IE浏览器相比,Edge将支持现代浏览器功能,比如扩展。

卸载程序的文件名是“uninstall.exe”或“uninst.exe”,是用以协助使用者将软件自电脑中删除的一种电脑软件。使用方法:1、在文件资源管理器中挖掘并导航到应用程序EXE文件所在的文件路径;2、通过文件路径打开应用程序的安装目录,找到“uninstall.exe”文件;3、双击卸载文件“uninstall.exe”即可开始程序删除过程。

explorer.exe应用程序错误的解决办法:1、按下键盘上的“win”+“R”组合键,再打开的运行窗口中输入命“inetcpl.cpl”;2、在上方选择“高级”选项卡,在下方点击“重置”;3、在弹出来的窗口中,勾选“删除个人设置”,勾选后点击下面的“重置”。如果以上操作无法解决问题,请检查电脑是否有木马,这个时候建议重装系统,安装一个原版或者纯净版的系统。
![如何修复 Windows 11 上的应用程序无法打开问题 [已解决]](https://img.php.cn/upload/article/000/465/014/168300240866363.png)
微软最新发布的Windows11,已经证明是Windows10的更好版本,其结构变化、更人性化、重新排列的任务栏等。尽管Windows11是其中一个优秀的版本。许多Windows用户注意到他们的Windows11PC上存在一个不寻常的问题,他们无法启动大多数Windows11应用程序。无论他们尝试启动应用程序多少次,它只是简单地崩溃并且无法在系统上打开。突然发生这种情况可能有很多原因,下面列出了一些原因。Windows更新服务已停止。对系统的病毒攻击。系统上的用户帐户存

随着Internet的发展,越来越多的应用程序需要实现地图可视化展示。本文将介绍如何使用PHP和OpenLayers创建地图应用程序。一、OpenLayers介绍OpenLayers是一个JavaScript开源库,可以展示动态地图。除了展示标准的WMS、WFS和GoogleMaps,OpenLayers还可以展示自定义的地图,可以展示矢量数据,支持地图放

<p><strong>邮件应用程序</strong>是Windows11内置的一个非常有用的电子邮件客户端。它允许您从一个位置管理所有邮件帐户。虽然Mail应用程序非常有用,但有时可能需要重置,有时也需要重新安装,原因有多种。在本文中,我们将通过一些简单的步骤说明如何从Windows11轻松卸载Mail应用程序,以及如何轻松地从MicrosoftStore将其取回。</p>&l

随着全球定位系统(GPS)和卫星影像技术的飞速发展,地理信息系统(GIS)已经成为了一个重要的应用领域。GIS不仅限于地图制作和分析,也被广泛应用于环境管理、土地管理、城市规划等领域。而WebGIS应用程序的开发,可以使得用户在任何地点、任何时间、通过任何设备进行GIS数据的查询、分析和管理,具有极大的应用前景。Django是一个基于Python语言的We


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。