Time of Update: 2017-02-21
工作階段劫持 最常見的針對會話的攻擊手段是工作階段劫持。它是所有攻擊者可以用來訪問其它人的會話的手段的總稱。所有這些手段的第一步都是取得一個合法的會話標識來偽裝成合法使用者,因此保證會話標識不被泄露非常重要。前面幾節中關於會話暴露和固定的知識能協助你保證會話標識只有伺服器及合法使用者才能知道。
Time of Update: 2017-02-21
源碼暴露 關於包含的一個重要問題是原始碼的暴露。產生這個問題主要原因是下面的常見情況: l 對包含檔案使用.inc的副檔名l 包含檔案儲存在網站主目錄下l Apache未設定.inc檔案的類型l Apache的預設檔案類型是text/plain 上面情況造成了可以通過URL直接存取包含檔案。更糟的是,它們會被作為普通文本處理而不會被PHP所解析,這樣你的原始碼就會顯示在使用者的瀏覽器上(見圖5-1)。 圖 5-1.
Time of Update: 2017-02-21
後門URL 後門URL是指雖然無需直接調用的資源能直接通過URL訪問。例如,下面WEB應用可能向登入使用者顯示敏感資訊: <?php $authenticated = FALSE; $authenticated = check_auth(); /* ... */ if ($authenticated) { include './sensitive.php'; } ?>
Time of Update: 2017-02-21
檔案名稱操縱 在很多情形下會使用動態包含,此時目錄名或檔案名稱中的部分會儲存在一個變數中。例如,你可以緩衝你的部分動態網頁來降低你的資料庫伺服器的負擔。 <?php include "/cache/{$_GET['username']}.html"; ?>
Time of Update: 2017-02-21
代碼注入 一個特別危險的情形是當你試圖使用被汙染資料作為動態包含的前置部分時: <?php include "{$_GET['path']}/header.inc"; ?> 在這種情形下攻擊者能操縱不只是檔案名稱,還能控制所包含的資源。由於PHP預設不只可以包含檔案,還可以包含下面的資源(由設定檔中的allow_url_fopen所控制): <?php include 'http://www.google.com/
Time of Update: 2017-02-21
檔案系統跨越 無論你用什麼方法使用檔案,你都要在某個地方指定檔案名稱。在很多情況下,檔案名稱會作為fopen()函數的一個參數,同時其它函數會調用它返回的控制代碼:<?php $handle = fopen('/path/to/myfile.txt', 'r'); ?> 當你把被汙染資料作為檔案名稱的一部分時,漏洞就產生了: <?php $handle
Time of Update: 2017-02-21
遠程檔案風險 PHP有一個配置選項叫allow_url_fopen,該選項預設是有效。它允許你指向許多類型的資源,並像本地檔案一樣處理。例如,通過讀取URL你可以取得某一個頁面的內容(HTML):<?php $contents =file_get_contents('http://example.org/'); ?>
Time of Update: 2017-02-21
命令注入 使用系統命令是一項危險的操作,尤其在你試圖使用遠端資料來構造要執行的命令時更是如此。如果使用了被汙染資料,命令注入漏洞就產生了。 Exec()是用於執行shell命令的函數。它返回執行並返回命令輸出的最後一行,但你可以指定一個數組作為第二個參數,這樣輸出的每一行都會作為一個元素存入數組。使用方式如下: <?php $last = exec('ls', $output, $return); print_r($output); echo
Time of Update: 2017-02-20
本文為大家介紹常用的三種php設計模式:單例模式、原廠模式、觀察者模式,具有很好的參考價值,下面跟著小編一起來看下吧一、首先來看,單例模式所謂單例模式,即在應用程式中只會有這個類的一個執行個體存在。通常單例模式用在僅允許資料庫訪問對象的執行個體中,從而防止開啟多個資料庫連接。一個單例類應包括以下幾點:和普通類不同,單例類不能被直接執行個體化,只能是由自身執行個體化。因此,要獲得這樣的限制效果,建構函式必須標記為private。要讓單例類不被直接執行個體化而能起到作用,就必須為其提供這樣的一個執行
Time of Update: 2017-02-20
本篇文章主要介紹了php+webSoket搭建chatServer樣本(附源碼)的資料,這裡整理了詳細的代碼,有需要的小夥伴可以參考下。最近在公司利用直播間搭建一個圖文直播間時正好要用到chatsever,研究了一下html5的websocket 實現了雙向通訊,根據前人的經驗折騰了幾天弄了個聊天室,實現了發送圖片,發送QQ表情,群聊私聊等功能,特地分享給各位新手參考學習,大牛可以忽略。前端:client.html<!doctype
Time of Update: 2017-02-20
這篇文章主要介紹了php基於ob_start('ob_gzhandler')實現網頁壓縮功能的方法,涉及php中ob_gzip、ob_start等函數操作緩衝區及內容壓縮相關技巧,需要的朋友可以參考下本文執行個體講述了php基於ob_start('ob_gzhandler')實現網頁壓縮功能的方法。分享給大家供大家參考,具體如下:PHP產生網頁後傳送給瀏覽器顯示 ,頁面的開啟速度除了與使用者的網速有關,往往也跟頁面的大小有很關係,我們可以從網
Time of Update: 2017-02-20
下面小編就為大家帶來一篇完美解決php 匯出excle的.csv格式的資料時亂碼問題。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧1、header('Content-Encoding: XXXX');有可能是編碼問題:可以嘗試UTF-8,GBK,GB2312,等編碼格式2、有可能是檔案編碼問題,雖然UTF-8不建議帶BOM,但是匯出的excle是微軟的產品,所以需要把檔案格式改成,UTF-8有BOM格式的。以上這篇完美解決php 匯出excle的.
Time of Update: 2017-02-20
這篇文章主要介紹了Zend Framework基於Command命令列建立ZF項目的方法,較為詳細的分析了使用Command命令列建立ZF項目的具體操作步驟與相關注意事項,需要的朋友可以參考下本文執行個體講述了Zend Framework基於Command命令列建立ZF項目的方法。分享給大家供大家參考,具體如下:zend framework 的項目結構比較複雜,但是有既定的結構。zf提供了使用Command產生項目結構的工具,使用非常方便,初學者可以不用為了複雜的結構而Orz。使用前的一些配置。
Time of Update: 2017-02-20
這篇文章主要介紹了PHP實現大數(浮點數)取餘的方法,結合執行個體形式分析了php數學運算相關操作技巧,需要的朋友可以參考下本文執行個體講述了PHP實現大數(浮點數)取餘的方法。分享給大家供大家參考,具體如下:一般我們進行取餘運算第一個想到的就是用百分比符號%,但當除數是個很大的數值,超出了int範圍時,這樣取餘就不準確了。php大數(浮點數)取餘函數:/** * php大數取餘 * * @param int or float $bn 除數 * @param int $sn 被除數 *
Time of Update: 2017-02-20
暴力密碼破解攻擊 暴力密碼破解攻擊是一種不使用任何特殊手段而去窮盡各種可能性的攻擊方式。它的更正式的叫法是窮舉攻擊——窮舉各種可能性的攻擊。 對於存取控制,典型的暴力密碼破解攻擊表現為攻擊者通過大量的嘗試去試圖登入系統。在多數情況下,使用者名稱是已知的,而只需要猜測密碼。 儘管暴力密碼破解攻擊沒有技巧性可言,但詞典攻擊似乎有一定的技巧性。最大的區別是在進行猜測時的智能化。詞典攻擊只會最可能的情況列表中進行窮舉,而不像暴力密碼破解攻擊一樣去窮舉所有的可能情況。
Time of Update: 2017-02-20
密碼嗅探 儘管攻擊者通過嗅探(察看)你的使用者和應用間的網路通訊並不專門用於存取控制,但要意識到資料暴露變得越來越重要,特別是對於驗證資訊。 使用SSL可以有效地防止HTTP請求和回應不被暴露。對任何使用https方案的資源的請求可以防止密碼嗅探。最好的方法是一直使用SSL來發送驗證資訊,同時你可能還想用SSL來傳送所有的包含會話標識的請求以防止工作階段劫持。 為防止使用者驗證資訊不致暴露,在表單的action屬性的URL中使用https方案如下:CODE: <form
Time of Update: 2017-02-20
重播攻擊 重播攻擊,有時稱為示範攻擊,即攻擊者重現以前合法使用者向伺服器所發送的資料以擷取訪問權或其它分配給該使用者的許可權。 與密碼嗅探一樣,防止重播攻擊也需要你意識到資料的暴露。為防止重播攻擊,你需要加大攻擊者擷取任何用於取得受限資源的存取權限的資料的難度。這主要要求做到避免以下做法: 設定受保護資源永久訪問權的資料的使用;設定受保護資源訪問權的資料的暴露(甚至是只提供臨時訪問權的資料);
Time of Update: 2017-02-20
永久登入 永久登入指的是在瀏覽器會話間進行持續驗證的機制。換句話說,今天已登入的使用者明天依然是處於登入狀態,即使在多次訪問之間的使用者會話到期的情況下也是這樣。 永久登入的存在降低了你的驗證機制的安全性,但它增加了可用性。不是在使用者每次訪問時麻煩使用者進行身分識別驗證,而是提供了記住登入的選擇。 圖7-2. 攻擊者通過重播使用者的cookie進行未授權訪問
Time of Update: 2017-02-20
源碼暴露 你的WEB伺服器必須要能夠讀取你的源確並執行它,這就意味著任意人所寫的代碼被伺服器運行時,它同樣可以讀取你的源碼。在一個共用主機上,最大的風險是由於WEB伺服器是共用的,因此其它開發人員所寫的PHP代碼可以讀取任意檔案。 <?php header('Content-Type: text/plain'); readfile($_GET['file']); ?>
Time of Update: 2017-02-20
會話資料暴露 當你關注於防止源碼的暴露時,你的會話資料只同樣存在著風險。在預設情況下,SESSION儲存在/tmp目錄下。這樣做在很多情形下是很方便的,其中之一是所有使用者都有對/tmp的寫入許可權,這樣Apache同樣也有許可權進行寫入。雖然其他使用者不能直接從shell環境讀取這些會話檔案,但他們可以寫一個簡單的指令碼來進行讀取: <?php header('Content-Type: text/plain'); session_start();