中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > Php 安全錯誤 Top 7
[PHP]配置,使用Smarty技術(shù) 回到列表 [PHP]模板引擎Smarty介紹
 Php 安全錯誤 Top 7

作者:phzzy 時間: 2006-01-10 文檔類型:翻譯 來自:藍色理想

第 1 頁 Php 安全錯誤 Top 7 [1]
第 2 頁 Php 安全錯誤 Top 7 [2]

原文地址:
http://www.sitepoint.com/article/php-security-blunders

其實開個金山慢慢掃過去..基本都能看懂.呵呵.就是翻譯出來不通順.寒
水平有限,讀不通順的地方請見諒.哈哈
Phzzy 2005-12-31
www.Phzzy.org
****************************

Top 7 PHP Security Blunders
By Pax Dickinson
2005 - 12 - 21
Reader Rating: 8.2

PHP對于飛速發(fā)展的動態(tài)網(wǎng)站來說是一門恐怖的語言。它對于新手來說也有很多友好的性質(zhì),比如變量不需要定義就可以直接使用。但是,一些類似的這種性質(zhì)使程序員不會注意到在網(wǎng)站應(yīng)用方面的一些安全問題。一個非常著名的郵件列表就充滿很多條了對PHP應(yīng)用有漏洞的例子,但一旦你理解了PHP應(yīng)用中這些基本的漏洞,PHP將變得比其他任何語言都安全。

在這篇文章中,我會詳細(xì)的說說明在一般PHP程序中常見的導(dǎo)致安全問題的錯誤。而且會展示給你什么是不能做的,還有這些特殊的漏洞是怎么被發(fā)現(xiàn)的,我希望你不但可以懂得怎么來避免這些特殊的錯誤,而且可以知道它們?yōu)槭裁磿䦟?dǎo)致安全問題。了解每種可能出現(xiàn)的漏洞能幫助你避免在編寫PHP程序時發(fā)生同樣的錯誤。安全是一個過程,而不是一個產(chǎn)品,通過在開發(fā)應(yīng)用程序的過程中了解安全問題可以讓你編出更高效更健壯的代碼。

Unvalidated Input Errors 不受重視的輸入錯誤
最常見的PHP安全問題之一就是對用戶輸入過濾的漏洞。一般用戶提交數(shù)據(jù)都是不可信任的。你應(yīng)該假設(shè)所有所有訪問你網(wǎng)站的用戶都是惡意的。非正常輸入是很多PHP應(yīng)用程序漏洞的最根本的原因,我們將在后面進行討論。
現(xiàn)在給大家一個例子,你可以寫下面這段代碼來允許用戶看到可以一個通過執(zhí)行UNIX中的cal命令來顯示特殊月份。

$month = $_GET[month];
$year = $_GET[year];

exec("cal $month $year", $result);
print "<PRE>";
foreach ($result as $r) { print "$r<BR>"; }
print "</PRE>";

這段代碼有很多安全問題。比如$_GET[month]和$_GET[year]沒有過濾就直接賦給了$month和$year,如果用戶輸入的月份是1到12之間,而且年份是4位數(shù)字當(dāng)然是沒有問題。不過,惡意的用戶會在年份后面加上一個";ls -la",這樣他就可以以列表的方式看到你網(wǎng)站的所有目錄。更加極端的用戶會在年份后面加上";rm -rf",這樣就能刪掉你的整個網(wǎng)站!
改正這個安全問題的最好的方法是在接收用戶輸入的數(shù)據(jù)時進行檢測,使他成為你所希望的格式。不要使用JS來驗證,這種驗證很容易就能繞過,比如建立一個自己的表單來提交數(shù)據(jù),或者用瀏覽器禁用JS。你應(yīng)該用PHP代碼來確保輸入的年份和月份是數(shù)字,而且必須是數(shù)字。就象下面的代碼這樣:

$month = $_GET[month];
$year = $_GET[year];

if (!preg_match("/^[0-9]$/", $month)) die("Bad month, please re-enter.");
if (!preg_match("/^[0-9]$/", $year)) die("Bad year, please re-enter.");

exec("cal $month $year", $result);
print "<PRE>";
foreach ($result as $r) { print "$r<BR>"; }
print "</PRE>";

這樣的代碼就能安全的使用,而不用考慮用戶提交的數(shù)據(jù)會使你的應(yīng)用程序產(chǎn)生錯誤,或?qū)е路⻊?wù)器運行用戶提交的非法代碼。正則表達式是驗證數(shù)據(jù)的一個非常有效的工具。雖然他很難完全掌握,但在這種情況下還是非常實用的。
你應(yīng)該驗證用戶提交的數(shù)據(jù),來拒絕所有非法的數(shù)據(jù)。一定不要在沒有驗證之前接收任何數(shù)據(jù),除非你可以確定它一定是安全的數(shù)據(jù)。這是一個常見的安全問題。但有時,惡意的用戶會通過一些方法來提交一些特定的數(shù)據(jù),這樣可以繞過你的驗證,而且會起到有害的作用。
所以你應(yīng)該嚴(yán)格的驗證提交的數(shù)據(jù),如果一些字符是不需要的,那么你應(yīng)該過濾掉這些字符或者直接拒絕接收這些的數(shù)據(jù)。

Access Control Flaws 非法控制漏洞
這是一個對PHP應(yīng)用程序來說非必要的驗證,但卻是十分重要的,就是非法控制。比如有一個管理頁,在這個頁中可以修改網(wǎng)站的配置,或會顯示一些敏感的信息。
你應(yīng)該在執(zhí)行每一個PHP應(yīng)用頁面時對用戶的權(quán)限進行檢查。如果你只在首頁檢查了用戶的權(quán)限,那么惡意的用戶可以直接在地址欄輸入地址來進入后面的那些沒有進行權(quán)限判斷的頁面。
建議進行嚴(yán)格的檢查。如果可能的話,你可以根據(jù)用戶的IP來判斷他們的權(quán)限。另一個好的方法是把把你不想讓別人訪問到的頁面放到一個特殊的目錄,并用apache中的.htaccess來保護這個目錄。
把網(wǎng)站的配置文件放在網(wǎng)站可以直接訪問的目錄之外。這種配置文件包括數(shù)據(jù)庫的密碼和其他一些會讓惡意用戶利用來攻擊你的網(wǎng)站的信息。用PHP的include函數(shù)來包含這些文件。雖然做這些事感覺有點多余,但對于網(wǎng)站的安全還是有積極的作用的。
例如我寫的PHP應(yīng)用程序。所有的自定義的函數(shù)庫都放在一個includes的文件夾中。一般把這些被包含的文件取一個以.php為后綴的文件名,這樣就算你所做的保護措施都被繞過了,服務(wù)器也會把這些文件當(dāng)做PHP文件來解析,而不會顯示這些文件的內(nèi)容。www和admin文件夾是唯一的可以通過URL直接訪問的文件夾。admin文件夾受到.htaccess的保護,只允許知道儲存在.htpasswd中的用戶名和密碼的用戶可以訪問。
/home
/httpd
/www.example.com
.htpasswd
/includes
cart.class.php
config.php
/logs
access_log
error_log
/www
index.php
/admin
.htaccess
index.php
你應(yīng)該設(shè)置你的apache的默認(rèn)主頁名是index.php并且確保每個目錄都有index.php這個文件。當(dāng)別人訪問這些你不想讓別人訪問的目錄時讓他轉(zhuǎn)向到網(wǎng)站的主頁,比如存放圖片的目錄或其他類似的。
千萬不要把你的備份文件取文件名為.bak的后綴,并放在可以直接通過URL訪問的目錄。如果你這樣做了,那么在這些文件中的PHP代碼將不會被解析,甚至可能會被用戶通過URL直接下載。如果這些文件包含密碼或其他敏感的信息,那么有可能會被別人知道,甚至可能被搜索引擎,比如GOOGLE,直接搜索到而顯示在頁面上。一定要把這些文件重新命名為 .bak.php 為后綴的文件,這樣會安全一些,不過最好的解決方法還是用象CVS那樣控制。CVS學(xué)起來有一些復(fù)雜,不過你學(xué)習(xí)的所花的時間會在以后得到回報。這樣的系統(tǒng)可以讓你把每個不同版本的程序保存在不同的文件夾,如果你的程序以后出了問題,這些以前保存的版本可能會成為你無價的資源。.

出處:藍色理想
責(zé)任編輯:moby

上一頁 下一頁 Php 安全錯誤 Top 7 [2]

◎進入論壇網(wǎng)絡(luò)編程版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
[PHP]配置,使用Smarty技術(shù)
實戰(zhàn)access+php的留言版
IIS 6 的 PHP 最佳配置方法
[php]配置,鏈接access數(shù)據(jù)庫
淺淡PHP生成HTML的思路
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設(shè)計大賽開啟
國際體驗設(shè)計大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機會
阿里行云
云手機年終巨獻,送禮標(biāo)配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設(shè)計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:1/21個記錄/頁 轉(zhuǎn)到 頁 共2個記錄

藍色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2