久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Discuz: 插件代碼的安全規(guī)范:修訂間差異

來自站長百科
跳轉(zhuǎn)至: 導航、? 搜索
無編輯摘要
無編輯摘要
?
(未顯示1個用戶的2個中間版本)
第1行: 第1行:
__NOTOC__
__NOTOC__
<span style="border:1px solid #000; text-align:center; float:right; padding:6px; margin-bottom:15px;"><strong>導航:</strong> [[Discuz:插件相關|上一級]] | [[Discuz]] | {{Template:Discuz導航}}</span>
{{Discuz! 6.0 top}}
<div style="clear:both;"></div>
<div style="clear:both;"></div>
<p style="text-indent:2em;">總的來說 [[PHP]] 還是相對安全的 [[Web]] 程序,但是由于一些代碼在處理方式上的不成熟導致了安全隱患.由于這個議題范圍太廣,所以推薦 PHPCHINA 的[http://down.zzbaike.com/download/phpsecurity-1218.html Essential PHP Security -PHP安全基礎] 一書給大家,希望對大家有幫助。更詳細的 PHP 安全信息可以登錄 php.net 查找。</p>
<p style="text-indent:2em;">[[Discuz]]插件代碼的安全規(guī)范,總的來說 [[PHP]] 還是相對安全的 [[Web]] 程序,但是由于一些代碼在處理方式上的不成熟導致了安全隱患.由于這個議題范圍太廣,所以推薦 PHPCHINA 的[http://down.zzbaike.com/download/phpsecurity-1218.html Essential PHP Security -PHP安全基礎] 一書給大家,希望對大家有幫助。更詳細的 PHP 安全信息可以登錄 php.net 查找。</p>
<p style="text-indent:2em;">那么,對于[[插件]]安全究竟我們要做些什么怎么做?</p>
<p style="text-indent:2em;">那么,對于[[插件]]安全究竟我們要做些什么怎么做?</p>
<h5>1、變量的初始化</h5>
<h5>1、變量的初始化</h5>
第22行: 第22行:
<h5>6、不要妄圖直接把低版本的 Discuz! 插件直接運行</h5>
<h5>6、不要妄圖直接把低版本的 Discuz! 插件直接運行</h5>
<p style="text-indent:2em;">由于每個大版本的升級都會帶來系統(tǒng)構架的一些變化,可能舊版本的插件仍然可以使用,但是或許一些不可預料的問題正在隱藏中,所以建議任何低版本的 [[Discuz! 插件]]最好是經(jīng)過仔細研究之后再公告說可以適用新版本 Discuz! 插件。</p>
<p style="text-indent:2em;">由于每個大版本的升級都會帶來系統(tǒng)構架的一些變化,可能舊版本的插件仍然可以使用,但是或許一些不可預料的問題正在隱藏中,所以建議任何低版本的 [[Discuz! 插件]]最好是經(jīng)過仔細研究之后再公告說可以適用新版本 Discuz! 插件。</p>
?
== 參考來源 ==
*http://faq.comsenz.com/
{{Discuz! 6.0}}


[[category:Discuz插件說明]]
[[category:Discuz插件說明]]

2010年11月24日 (三) 11:43的最新版本

Discuz! 6.0|Discuz! 6.0安裝|Discuz! 6.0使用|Discuz! 6.0風格模板|Discuz! 6.0插件|Discuz! 6.0升級|Discuz! 6.0開發(fā)|Discuz! 6.0 FAQ

Discuz插件代碼的安全規(guī)范,總的來說 PHP 還是相對安全的 Web 程序,但是由于一些代碼在處理方式上的不成熟導致了安全隱患.由于這個議題范圍太廣,所以推薦 PHPCHINA 的Essential PHP Security -PHP安全基礎 一書給大家,希望對大家有幫助。更詳細的 PHP 安全信息可以登錄 php.net 查找。

那么,對于插件安全究竟我們要做些什么怎么做?

1、變量的初始化

這里不討論 magic_quotes_gpc 和 register_globals 的設置情況,大家只要注意不要“無中生有”變量,每個變量的得到都是自己初始化過的。

2、邏輯關系清楚

對于邏輯的判定不是一句話能夠說明白的,舉個簡單的例子,在判斷上傳文件的時候,我們判斷的依據(jù)是他的后綴是否在我們允許的后綴里面,如果是允許的就執(zhí)行上傳,反之就提示上傳文件后綴不對,但是如果用戶上傳的文件名是 webshell.xxx.mht(允許mht 文件上傳,mht 是一種網(wǎng)頁存儲格式),于是文件上傳了,在 apache 系統(tǒng)的默認配置下,這個文件是會用 PHP 來解析的,利用這個算是 BUG 的問題吧,小版本人就曾伙同PHP安全界知名人士(幫他匿了)對我們學校的服務器完成了入侵,并最終取得了 root 權限(目前俺們學校的服務器已經(jīng)修正此問題),舉這個例子是為了說明程序處理的重要性,如果當時多一步判斷上傳的文件,也許這個安全問題就不再存在,其實這個例子來說明邏輯關系并不是很合適,但是程序處理真的是一個非常重要的部分。

3、' '與" "的區(qū)別運用

單引號中,任何變量($var)、特殊轉(zhuǎn)義字符(如“\t \r \n”等)不會被解析,因此PHP的解析速度更快,轉(zhuǎn)義字符僅僅支持“\’”和“\\”這樣對單引號和反斜杠本身的轉(zhuǎn)義;

雙引號中,變量($var)值會代入字符串中,特殊轉(zhuǎn)義字符也會被解析成特定的單個字符,還有一些專門針對上述兩項特性的特殊功能性轉(zhuǎn)義,例如“\$”和“{$array[‘key’]}.這樣雖然程序編寫更加方便,但同時PHP的解析也很慢;

數(shù)組中,如果下標不是整型,而是字符串類型,請務必用單引號將下標括起,正確的寫法為 $array[‘key’],而不是 $array[key],因為不正確的寫法會使PHP解析器認為key是一個常量,進而先判斷常量是否存在,不存在時才以“key”作為下標帶入表達式中,同時出發(fā)錯誤事件,產(chǎn)生一條 Notice 級錯誤。

因此,在絕大多數(shù)可以使用單引號的場合,禁止使用雙引號.依據(jù)上述分析,可以或必須使用單引號的情況包括但不限于下述:

字符串為固定值,不包含“\t”等特殊轉(zhuǎn)義字符;

數(shù)組的固定下標,例如$array[‘key’];

表達式中不需要帶入變量,例如$string = ‘test’;而非$string = “test$var”;

4、數(shù)據(jù)的過濾與處理

對于任何得到的數(shù)據(jù)在不能確定或者不能充分確定其來路的時候一定要進行過濾與處理,在數(shù)據(jù)進入程序運行處理階段之前,一定要保證它的準確性和正確性。

5、不要相信任何數(shù)據(jù)的準確性和正確性

這條視乎是和上面一條雷同,但是即使是從數(shù)據(jù)庫中查出來的數(shù)據(jù)也一樣不能確定,比如生成 cache 文件,如果用戶 POST 的數(shù)據(jù)錯誤不是我們期望的數(shù)據(jù),而“恰巧”生成到文件中,于是一個webshell產(chǎn)生了,同樣這個例子也不是很合適,我只是希望大家明白這么一點,如果我們沒有一個很好的處理數(shù)據(jù)的方式,那么代碼的安全崩潰也就指日可待。

6、不要妄圖直接把低版本的 Discuz! 插件直接運行

由于每個大版本的升級都會帶來系統(tǒng)構架的一些變化,可能舊版本的插件仍然可以使用,但是或許一些不可預料的問題正在隱藏中,所以建議任何低版本的 Discuz! 插件最好是經(jīng)過仔細研究之后再公告說可以適用新版本 Discuz! 插件。

參考來源[ ]

Discuz! 6.0使用手冊導航

Discuz! 6.0安裝:

Discuz! 6.0產(chǎn)品概況| Discuz! 6.0環(huán)境要求| Discuz! 6.0安裝詳細過程| Discuz! 6.0文件及目錄結構| Discuz! 6.0安裝的常見問題| 附錄 如何在Discuz上安裝個人空間SupeSite/x-space指南| 附錄 論壇一鍵式安裝Discuz!EXP及EasyDiscuz指南| 附錄 discuz本地運行環(huán)境構建(windows)

Discuz! 6.0使用:

Discuz! 6.0日常使用| Discuz! 6.0 config.inc.php配置問題| Discuz! 6.0前臺管理操作說明| Discuz! 6.0用戶權限設定| Discuz! 6.0服務器相關| Discuz! 6.0后臺基本設置| Discuz! 6.0后臺論壇管理| Discuz! 6.0后臺用戶管理| Discuz! 6.0后臺帖子管理| Discuz! 6.0后臺擴展設置| Discuz! 6.0后臺其它設置| Discuz! 6.0后臺社區(qū)營銷| Discuz! 6.0后臺系統(tǒng)工具

Discuz! 6.0風格模板

Discuz!6.0風格制作| Discuz!6.0界面風格與模板定制| Discuz!6.0風格高級應用| Discuz!6.0頭部模板header詳解| Discuz!6.0頁腳模板footer詳解

Discuz! 6.0插件

Discuz!6.0插件簡介| Discuz!6.0插件安裝| Discuz!6.0插件列表

Discuz! 6.0升級

Discuz!6.0升級指南| Discuz!6.0階段升級說明| Discuz!6.0版本更新記錄

Discuz! 6.0開發(fā)

Discuz!6.0插件設計 | Discuz!6.0插件設置及管理| Discuz!6.0插件的鉤子使用技巧| Discuz!6.0插件代碼的安全規(guī)范| Discuz!6.0PassPort接口技術文檔

Discuz! 6.0 FAQ

Discuz!6.0經(jīng)驗技巧| Discuz!6.0防御CC攻擊說明| Discuz!6.0搜索引擎優(yōu)化| Discuz!6.0論壇程序