DEDECMSV3 文件代碼流程功能分析_DedeCms教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
DEDECMSV3 文件代碼流程功能分析(3),希望有助于dedecms整合,擴展
dede很多時候用dede_后面加表,好處是,大家可以安裝時,定義自己的表的前綴,這樣安全性提高了,
那么,dede_,dede是怎么處理的,很輕易想到,在mysql類庫處理里面替換dede_為表的前綴,
關于dede_替換過程:
首先找到的是./include/pub_db_mysql.php
行252 有
function SetQuery($sql){}
處理這個這個替換過程
具體的處理看:
256行有:$prefix="dede_";
262行有:$np = strlen($prefix);
263行有:$restr = '';
267行有:$test = substr($sql, $j, $np);
好在看286行:
CODE:
if ($test == $prefix && !$inQuote)
{
$restr .= $this->dbPrefix;
$j = $np-1;
}
[Copy to clipboard]
當我們獲得sql語句中有dede_,那么$restr前面就加載表頭。
注重:264行 for($j=0; $j < $n; $j ){}循環(huán)語句
我在想,為什么dedecms要用for循環(huán)對sql語句的每個字符都要嚴格過濾,也是出于安全考慮,防止sql注入
另外:我看到了266行:$c = $sql{$j};后來查了手冊:
手冊是這么解釋的:
訪問字符串中的字符
字符串中的字符可以通過在字符串之后用花括號指定所要字符從零開始的偏移量來訪問。
dede很多時候用dede_后面加表,好處是,大家可以安裝時,定義自己的表的前綴,這樣安全性提高了,
那么,dede_,dede是怎么處理的,很輕易想到,在mysql類庫處理里面替換dede_為表的前綴,
關于dede_替換過程:
首先找到的是./include/pub_db_mysql.php
行252 有
function SetQuery($sql){}
處理這個這個替換過程
具體的處理看:
256行有:$prefix="dede_";
262行有:$np = strlen($prefix);
263行有:$restr = '';
267行有:$test = substr($sql, $j, $np);
好在看286行:
CODE:
if ($test == $prefix && !$inQuote)
{
$restr .= $this->dbPrefix;
$j = $np-1;
}
[Copy to clipboard]
當我們獲得sql語句中有dede_,那么$restr前面就加載表頭。
注重:264行 for($j=0; $j < $n; $j ){}循環(huán)語句
我在想,為什么dedecms要用for循環(huán)對sql語句的每個字符都要嚴格過濾,也是出于安全考慮,防止sql注入
另外:我看到了266行:$c = $sql{$j};后來查了手冊:
手冊是這么解釋的:
訪問字符串中的字符
字符串中的字符可以通過在字符串之后用花括號指定所要字符從零開始的偏移量來訪問。
相關DedeCms教程:
- Dedecms生成百度地圖圖文教程
- 織夢dedecms生成下拉式友情鏈接列表
- DEDECMS使用拼音首字母做欄目名稱
- 織夢DEDECMS站群增強版 DedeCMS搭建站群首選
- DedeCMS Error:Tag disabled:php錯誤的完整處理方法
- dedecms編碼轉(zhuǎn)換方法 gbk轉(zhuǎn)UTF-8,UTF-8轉(zhuǎn)GBK
- 防XSS,sql注射,代碼執(zhí)行,文件包含的通用代碼
- DedeCms教程:優(yōu)化DedeCMS搜索結果
- DedeCms教程:Linux+Apache+PHP+MySQL服務器環(huán)境(CentOS篇)
- DedeCms教程:LuManager服務器管理軟件安裝DEDECMS軟件
- DedeCms教程:Ubuntu/Debian上安裝 PHP 5.3, Nginx 和 PHP-fpm
- DedeCms教程:windows server 2003 php 環(huán)境搭建