IDC知識(shí)庫(kù)
IDC領(lǐng)域?qū)I(yè)知識(shí)百科平臺(tái)

discuz論壇程序如何保證插件安全

1.非直接執(zhí)行程序請(qǐng)加上

if(!defined(‘IN_DISCUZ’)) {exit(‘Access Denied’);}

2.記得過(guò)濾

比如說(shuō)uid等id需要intval過(guò)濾,避免溢出 ? ? 文字內(nèi)容需要htmlspecialchars過(guò)濾避免內(nèi)容變形(DZ內(nèi)為dhtmlspecialchars)

3.查詢條件需要寫在’和’中間.

這個(gè)是為了避免別人使用查詢的條件寫出溢出內(nèi)容

4.所有寫入mysql的變量必須addslashes

DZ內(nèi)為daddslashes,如用DZ無(wú)須再次過(guò)濾,DZ已將所有 POST和 _GET過(guò)濾,并記得在插入時(shí)前后帶上’

這是為了避免破第3步將變量?jī)?nèi)帶’使第3條無(wú)效 ? ? 再需要選擇是否插入某字段時(shí)記得不要直接使用傳遞來(lái)的代碼而是判斷是否選上什么再加上,比如

if($click) {$front = ‘a, b ,c’;$back = “‘$a’, ‘$b’, ‘$c'”;} else {$front = $back = ”;}

然后在下面的插入內(nèi)可以直接加上 front和 back

查詢也類似. ? ? 必須記得如果沒(méi)有將 front和 back為”,這是為了避免讓別人利用了.

5.提交內(nèi)容記得用submitcheck() ? ? 避免被別人利用,比如利用[img]代碼

6.確保所有變量都有定義,防止被別人利用 ? ? DZ一直在改進(jìn),啟用了很多新的變量也放棄了很多舊的變量,希望大家在轉(zhuǎn)換過(guò)程中先了解清楚DZ是否有更改或去除以前的變量. ? ? 比如說(shuō)前段時(shí)間的許愿池 漏洞 就是因?yàn)闆](méi)有定義$discuz_root而被別人利用.

7.extract,eval等函數(shù)需要小心使用 ? ? 不要被別人利用這個(gè)覆蓋已有變量達(dá)到入侵目的

8.寫儲(chǔ)存文件的時(shí)候記得過(guò)濾 ? ? 如果你儲(chǔ)存文件的后綴名為PHP或其他可執(zhí)行文件,記得將開(kāi)頭加上

<?PHPexit(‘Access Denied’);?>

9.可上傳附件的插件記得限制類型

上傳附件,為了防止他人上傳可執(zhí)行文件,必須檢查后綴名是否含有可執(zhí)行文件后綴名,最好不允許此類文件上傳,如需上傳請(qǐng)將文件名改變. ? ? 以下內(nèi)容轉(zhuǎn)自DZ程序的代碼

$attach[‘attachment’] .= preg_replace(“/(php|phtml|php3| jsp |exe|dll| asp |aspx|asa|cgi|fcgi|pl)(\.|$)/i”, “_\\1\\2”,substr($filename, 0, 64).’_’.random(12).’.’.$extension);

10.所有組數(shù)在運(yùn)用前記得寫$xxx = array(); ? ? 這個(gè)的原因很簡(jiǎn)單,為了避免被利用(在地址直接加上&xxx[xxx]=abc即可被利用) ? ? 有些插件有可能因?yàn)檫@些原因影響插件安全

贊(11)
分享到: 更多 (0)

中國(guó)專業(yè)的網(wǎng)站域名及網(wǎng)站空間提供商

買域名買空間