国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - php session劫持和防范的方法

php session劫持和防范的方法

2020-05-28 14:04PHP教程網(wǎng) PHP教程

本文介紹php session劫持和防范的方法

session 數(shù)據(jù)暴露
會話數(shù)據(jù)常會包含一些個人信息和其它敏感數(shù)據(jù)。基于這個原因,會話數(shù)據(jù)的暴露是被普遍關(guān)心的問題。一般來說,暴露的范圍不會很大,因為會話數(shù)據(jù)是保存在服務(wù)器環(huán)境中的,而不是在數(shù)據(jù)庫或文件系統(tǒng)中。因此,會話數(shù)據(jù)自然不會公開暴露。
使用SSL是一種特別有效的手段,它可以使數(shù)據(jù)在服務(wù)器和客戶端之間傳送時暴露的可能性降到最低。這對于傳送敏感數(shù)據(jù)的應(yīng)用來說非常重要。SSL在HTTP之上提供了一個保護(hù)層,以使所有在HTTP請求和應(yīng)答中的數(shù)據(jù)都得到了保護(hù)。
如果你關(guān)心的是會話數(shù)據(jù)保存區(qū)本身的安全,你可以對會話數(shù)據(jù)進(jìn)行加密,這樣沒有正確的密鑰就無法讀取它的內(nèi)容。這在PHP中非常容易做到,你只要使用session_set_save_handler( )并寫上你自己的session加密存儲和解密讀取的處理函數(shù)即可。
session 劫持
最常見的針對會話的攻擊手段是會話劫持。它是所有攻擊者可以用來訪問其它人的會話的手段的總稱。所有這些手段的第一步都是取得一個合法的會話標(biāo)識來偽裝成合法用戶,因此保證會話標(biāo)識不被泄露非常重要。前面關(guān)于會話暴露和固定的知識能幫助你保證會話標(biāo)識只有服務(wù)器及合法用戶才能知道。
深度防范原則可以用在會話上,當(dāng)會話標(biāo)識不幸被攻擊者知道的情況下,一些不起眼的安全措施也會提供一些保護(hù)。作為一個關(guān)心安全的開發(fā)者,你的目標(biāo)應(yīng)該是使前述的偽裝過程變得更復(fù)雜。記住無論多小的障礙,都會以你的應(yīng)用提供保護(hù)。
把偽裝過程變得更復(fù)雜的關(guān)鍵是加強驗證。會話標(biāo)識是驗證的首要方法,同時你可以用其它數(shù)據(jù)來補充它。你可以用的所有數(shù)據(jù)只是在每個HTTP請求中的數(shù)據(jù):
GET / HTTP/1.1
Host: example.org
User-Agent: Firefox/1.0
Accept: text/html, image/png, image/jpeg, image/gif, */*
Cookie: PHPSESSID=1234
你應(yīng)該意識到請求的一致性,并把不一致的行為認(rèn)為是可疑行為。例如,雖然User-Agent(發(fā)出本請求的瀏覽器類型)頭部是可選的,但是只要是發(fā)出該頭部的瀏覽器通常都不會變化它的值。如果你一個擁有1234的會話標(biāo)識的用戶在登錄后一直用Mozilla Firfox瀏覽器,突然轉(zhuǎn)換成了IE,這就比較可疑了。例如,此時你可以用要求輸入密碼方式來減輕風(fēng)險,同時在誤報時,這也對合法用戶產(chǎn)生的沖擊也比較小。你可以用下面的代碼來檢測User-Agent的一致性:

復(fù)制代碼 代碼如下:


<?php
session_start();
if (isset($_SESSION['HTTP_USER_AGENT']))
{
 if ($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT']))
 {
    /* Prompt for password */
    exit;
 }
}
else
{
 $_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']);
}

?>


我觀察過,在某些版本的IE瀏覽器中,用戶正常訪問一個網(wǎng)頁和刷新一個網(wǎng)頁時發(fā)出的Accept頭部信息不同,因此Accept頭部不能用來判斷一致性。
確保User-Agent頭部信息一致的確是有效的,但如果會話標(biāo)識通過cookie傳遞(推薦方式),有道理認(rèn)為,如果攻擊者能取得會話標(biāo)識,他同時也能取得其它HTTP頭部。由于cookie暴露與瀏覽器漏洞或跨站腳本漏洞相關(guān),受害者需要訪問攻擊者的網(wǎng)站并暴露所有頭部信息。所有攻擊者要做的只是重建頭部以防止任何對頭部信息一致性的檢查。
比較好的方法是產(chǎn)生在URL中傳遞一個標(biāo)記,可以認(rèn)為這是第二種驗證的形式(雖然更弱)。使用這個方法需要進(jìn)行一些編程工作,PHP中沒有相應(yīng)的功能。例如,假設(shè)標(biāo)記保存在$token中,你需要把它包含在所有你的應(yīng)用的內(nèi)部鏈接中:

復(fù)制代碼 代碼如下:


<?php
$url = array();
$html = array();
$url['token'] = rawurlencode($token);
$html['token'] = htmlentities($url['token'], ENT_QUOTES, 'UTF-8');
?>

<a href="index.php?token=<?php echo $html['token']; ?>">Click Here</a>


為了更方便地管理這個傳遞過程,你可能會把整個請求串放在一個變量中。你可以把這個變量附加到所有鏈接后面,這樣即便你一開始沒有使用該技巧,今后還是可以很方便地對你的代碼作出變化。
該標(biāo)記需要包含不可預(yù)測的內(nèi)容,即便是在攻擊者知道了受害者瀏覽器發(fā)出的HTTP頭部的全部信息也不行。一種方法是生成一個隨機串作為標(biāo)記:

復(fù)制代碼 代碼如下:


<?php
$string = $_SERVER['HTTP_USER_AGENT'];
$string .= 'SHIFLETT';
$token = md5($string);
$_SESSION['token'] = $token;
?>


當(dāng)你使用隨機串時(如SHIFLETT),對它進(jìn)行預(yù)測是不現(xiàn)實的。此時,捕獲標(biāo)記將比預(yù)測標(biāo)記更為方便,通過在URL中傳遞標(biāo)記和在cookie中傳遞會話標(biāo)識,攻擊時需要同時抓取它們二者。這樣除非攻擊者能夠察看受害者發(fā)往你的應(yīng)用所有的HTTP請求原始信息才可以,因為在這種情況下所有內(nèi)容都暴露了。這種攻擊方式實現(xiàn)起來非常困難(所以很罕見),要防止它需要使用SSL。
有專家警告不要依賴于檢查User-Agent的一致性。這是因為服務(wù)器群集中的HTTP代理服務(wù)器會對User-Agent進(jìn)行編輯,而本群集中的多個代理服務(wù)器在編輯該值時可能會不一致。如果你不希望依賴于檢查User-Agent的一致性。你可以生成一個隨機的標(biāo)記:

復(fù)制代碼 代碼如下:


<?php
$token = md5(uniqid(rand(), TRUE));
$_SESSION['token'] = $token;
?>


這一方法的安全性雖然是弱一些,但它更可靠。上面的兩個方法都對防止會話劫持提供了強有力的手段。你需要做的是在安全性和可靠性之間作出平衡。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩不卡在线 | 一区二区三区在线播放 | 91精品国产高清一区二区三区 | 久久综合成人精品亚洲另类欧美 | 国产精品久久久久久亚洲调教 | 成人免费在线观看 | 久久久精品 | 久久97视频| 久久久午夜爽爽一区二区三区三州 | 久久激情久久 | 四房婷婷 | 日本中文字幕在线免费观看 | 黄色三级免费网站 | 国产精品久久久久无码av | 伊人网站 | 亚洲一区二区三 | 日本乱轮视频 | 超碰在线观看97 | 久久综合狠狠综合久久综合88 | 欧美精品一二三区 | av日韩在线播放 | 亚洲成人日韩在线 | 99在线观看 | 国产成人精品一区二区三区福利 | 亚洲精品一区二区三区蜜桃下载 | 中文字幕第一页在线 | 国产香蕉视频在线播放 | 黑人巨大精品欧美黑白配亚洲 | 国产精品极品美女在线观看免费 | 久久精品久久久久久久久久16 | 免费视频久久久 | 欧美视频一区二区 | 韩日av在线 | 中文字幕在线观看日韩 | 国产精品久久久久久久久软件 | 久久精品视频免费 | 中文字幕专区 | 黄色免费在线观看网址 | 视频一区二区三区中文字幕 | 亚洲国产成人精品女人久久久 | 亚洲精品久久 |