tpshop防止sql注入补丁
生活随笔
收集整理的這篇文章主要介紹了
tpshop防止sql注入补丁
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本補(bǔ)丁 由 QQ 木偶人? 提供
首先在? www\Application\Common\Common\function.php 文件添加一個(gè)方法
/** * 轉(zhuǎn)換SQL關(guān)鍵字 * * @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);}?
其次需要替換一個(gè)方法 在文件 www\Application\Common\Common\function.php 找到方法 getIP()
// 定義一個(gè)函數(shù)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);}將以上方法替換為
// 定義一個(gè)函數(shù)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', // 系統(tǒng)默認(rèn)的變量過濾機(jī)制);?
然后修改一下一個(gè)php文件 目錄在 www\ThinkPHP\Library\Think\Db\Driver.class.php 代碼 103 行 加上一行代碼
?
// 復(fù)制這行加到相應(yīng)位置
$this->options[PDO::ATTR_EMULATE_PREPARES] = false;修改完成后記得 清除一下緩存
舊的版本 按照上述方法加上,?? 在新的發(fā)布版本里面 自帶已經(jīng)加上.
總結(jié)
以上是生活随笔為你收集整理的tpshop防止sql注入补丁的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个性签名唯美简短内涵205个
- 下一篇: 伯牙鼓琴这个故事赞扬了什么