日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

tpshop防止sql注入补丁

發布時間:2023/12/31 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tpshop防止sql注入补丁 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本補丁 由 QQ 木偶人? 提供

首先在? www\Application\Common\Common\function.php 文件添加一個方法

/** * 轉換SQL關鍵字 * * @param unknown_type $string * @return unknown */function strip_sql($string) { $pattern_arr = array( "/\bunion\b/i", "/\bselect\b/i", "/\bupdate\b/i", "/\bdelete\b/i", "/\boutfile\b/i", "/\bor\b/i", "/\bchar\b/i", "/\bconcat\b/i", "/\btruncate\b/i", "/\bdrop\b/i", "/\binsert\b/i", "/\brevoke\b/i", "/\bgrant\b/i", "/\breplace\b/i", "/\balert\b/i", "/\brename\b/i", "/\bmaster\b/i", "/\bdeclare\b/i", "/\bsource\b/i", "/\bload\b/i", "/\bcall\b/i", "/\bexec\b/i", "/\bdelimiter\b/i", ); $replace_arr = array( 'union', 'select', 'update', 'delete', 'outfile', 'or', 'char', 'concat', 'truncate', 'drop', 'insert', 'revoke', 'grant', 'replace', 'alert', 'rename', 'master', 'declare', 'source', 'load', 'call', 'exec', 'delimiter', ); return is_array($string) ? array_map('strip_sql', $string) : preg_replace($pattern_arr, $replace_arr, $string);}

?

其次需要替換一個方法 在文件 www\Application\Common\Common\function.php 找到方法 getIP()

// 定義一個函數getIP() 客戶端IP,function getIP(){ if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); else $ip = "Unknow"; return htmlspecialchars($ip);}

將以上方法替換為

// 定義一個函數getIP() 客戶端IP,function getIP(){ if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP"); else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); else $ip = "Unknow"; if(preg_match('/^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1 -9]?\d))))$/', $ip)) return $ip; else return '';}

?

方法添加完之后, 在 www\Application\Common\Conf\config.php 文件末尾 添加一行配置

'DEFAULT_FILTER' => 'strip_sql,htmlspecialchars', // 系統默認的變量過濾機制);

?

然后修改一下一個php文件 目錄在 www\ThinkPHP\Library\Think\Db\Driver.class.php 代碼 103 行 加上一行代碼

?

// 復制這行加到相應位置

$this->options[PDO::ATTR_EMULATE_PREPARES] = false;

修改完成后記得 清除一下緩存

舊的版本 按照上述方法加上,?? 在新的發布版本里面 自帶已經加上.

總結

以上是生活随笔為你收集整理的tpshop防止sql注入补丁的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。