第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

用戶登錄后,我需要在php會(huì)話中存儲(chǔ)什么?

用戶登錄后,我需要在php會(huì)話中存儲(chǔ)什么?

慕的地6264312 2019-11-27 12:51:15
目前,當(dāng)用戶登錄時(shí),我創(chuàng)建了2個(gè)會(huì)話。$_SESSION['logged_in'] = 1;$_SESSION['username']  = $username; // user's name因此,那些需要登錄的頁面,我只是這樣做:if(isset($_SESSION['logged_id'])){// Do whatever I want}有安全漏洞嗎?我的意思是,很容易破解我的會(huì)話嗎?人們?nèi)绾涡薷臅?huì)話?以及如何預(yù)防呢?編輯:剛發(fā)現(xiàn)這個(gè):http://www.xrvel.com/post/353/programming/make-a-secure-session-login-scripthttp://net.tutsplus.com/tutorials/php/secure-your-forms-with-form-keys/剛剛找到鏈接,這些方法夠好嗎?請(qǐng)發(fā)表您的意見。我仍然沒有得到最好的答案。
查看完整描述

3 回答

?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊

術(shù)語

用戶:訪客。

客戶端:安裝在特定計(jì)算機(jī)上的特定于Web的軟件。

了解會(huì)議

為了了解如何使會(huì)話安全,您必須首先了解會(huì)話的工作方式。


讓我們看一下這段代碼:


session_start();

調(diào)用后,PHP將查找名為PHPSESSID(默認(rèn)情況下)的cookie 。如果找不到,它將創(chuàng)建一個(gè):


PHPSESSID=h8p6eoh3djplmnum2f696e4vq3

如果找到它,它將采用值,PHPSESSID然后加載相應(yīng)的會(huì)話。該值稱為session_id。


那是客戶唯一會(huì)知道的。您添加到會(huì)話變量中的任何內(nèi)容都將保留在服務(wù)器上,并且永遠(yuǎn)不會(huì)傳輸?shù)娇蛻舳?。如果您更改的?nèi)容,則該變量不會(huì)更改$_SESSION。在您銷毀它或超時(shí)之前,它始終保持不變。因此,嘗試$_SESSION通過散列或其他方式來混淆內(nèi)容是沒有用的,因?yàn)榭蛻舳藦牟唤邮栈虬l(fā)送該信息。


然后,在新會(huì)話的情況下,您將設(shè)置變量:


$_SESSION['user'] = 'someuser';

客戶將永遠(yuǎn)不會(huì)看到該信息。


問題

當(dāng)惡意用戶竊取session_id其他用戶的安全性時(shí),可能會(huì)出現(xiàn)安全問題。如果沒有某種檢查,他將可以自由地模擬該用戶。我們需要找到一種唯一標(biāo)識(shí)客戶端(而非用戶)的方法。


一種策略(最有效)涉及檢查啟動(dòng)會(huì)話的客戶端的IP是否與使用會(huì)話的人的IP相同。


if(logging_in()) {

    $_SESSION['user'] = 'someuser';

    $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];

}


// The Check on subsequent load

if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']) {

    die('Session MAY have been hijacked');

}

該策略的問題在于,如果客戶端使用負(fù)載平衡器,或者(在長時(shí)間會(huì)話中)用戶具有動(dòng)態(tài)IP,則會(huì)觸發(fā)錯(cuò)誤警報(bào)。


另一種策略涉及檢查客戶端的用戶代理:


if(logging_in()) {

    $_SESSION['user'] = 'someuser';

    $_SESSION['agent'] = $_SERVER['HTTP_USER_AGENT'];

}


// The Check on subsequent load

if($_SESSION['agent'] != $_SERVER['HTTP_USER_AGENT']) {

    die('Session MAY have been hijacked');

}

該策略的缺點(diǎn)是,如果客戶端升級(jí)瀏覽器或安裝插件(某些插件添加到用戶代理),則用戶代理字符串將更改,并會(huì)觸發(fā)錯(cuò)誤警報(bào)。


另一種策略是session_id每5個(gè)請(qǐng)求輪換一次。這樣一來,session_id理論上停留的時(shí)間就不足以被劫持。


if(logging_in()) {

    $_SESSION['user'] = 'someuser';

    $_SESSION['count'] = 5;

}


// The Check on subsequent load

if(($_SESSION['count'] -= 1) == 0) {

    session_regenerate_id();

    $_SESSION['count'] = 5;

}

您可以根據(jù)需要組合所有這些策略,但同時(shí)也要組合不利因素。


不幸的是,沒有解決方案是萬無一失的。如果您session_id受到侵害,那么您就已經(jīng)做好了。以上策略只是權(quán)宜之計(jì)。


查看完整回答
反對(duì) 回復(fù) 2019-11-27
?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊

這是荒唐的。


當(dāng)(通常通過跨站點(diǎn)腳本攻擊)某人攔截您的sessionId(這是瀏覽器自動(dòng)發(fā)送到Web服務(wù)器的cookie)時(shí),就會(huì)發(fā)生會(huì)話劫持。


例如,有人發(fā)布了此信息:


因此,當(dāng)用戶登錄時(shí):


//不是最安全的哈希!$ _SESSION ['checksum'] = md5($ _ SESSION ['username']。$ salt);


在進(jìn)入敏感區(qū)域之前:


if(md5($ _ SESSION ['username']。$ salt)!= $ _SESSION ['checksum']){

handleSessionError(); }


讓我們來看看這是怎么回事


鹽-沒錯(cuò),但毫無意義。沒有人在破解您該死的md5,誰在乎它是否咸

將SESSION變量的md5與SESSION中存儲(chǔ)的同一變量的md5進(jìn)行比較-您正在比較會(huì)話之間的會(huì)話。如果該東西被劫持,將無濟(jì)于事。

$_SESSION['logged_in'] = 1;

$_SESSION['username']  = $username; // user's name

$_SESSION['hash']      = md5($YOUR_SALT.$username.$_SERVER['HTTP_USER_AGENT']);

//對(duì)用戶名進(jìn)行散列以避免操作


避免由誰操縱?神奇的會(huì)議仙境?除非服務(wù)器受到威脅,否則不會(huì)修改會(huì)話變量。哈希實(shí)際上僅是用來將您的字符串很好地壓縮為48個(gè)字符串(用戶代理可能會(huì)有點(diǎn)長)。


至少,但是,我們現(xiàn)在正在檢查一些客戶端數(shù)據(jù),而不是檢查從SESSION到SESSION數(shù)據(jù),他們已經(jīng)檢查了HTTP_USER_AGENT(用于標(biāo)識(shí)瀏覽器的字符串),這可能足以保護(hù)您,但您必須意識(shí)到如果此人已經(jīng)以某種方式獲取了您的sessionId,則很可能是您還向惡意者服務(wù)器發(fā)送了一個(gè)請(qǐng)求,并為該惡意者提供了您的用戶代理,因此,聰明的黑客會(huì)欺騙您的用戶代理并破壞此保護(hù)。


你真是可悲的是。


一旦您的會(huì)話ID遭到破壞,您就走了。您可以檢查請(qǐng)求的遠(yuǎn)程地址,并確保所有請(qǐng)求中的遠(yuǎn)程地址都相同(就像我所做的一樣),并且可以完美地滿足您99%的客戶群的需求。然后,有一天,您會(huì)收到一個(gè)用戶的呼叫,該用戶使用具有負(fù)載平衡代理服務(wù)器的網(wǎng)絡(luò),請(qǐng)求將通過一組不同的IP(有時(shí)甚至在錯(cuò)誤的網(wǎng)絡(luò)上)從此處發(fā)出,他將丟失自己的電話會(huì)議左,右,中。


查看完整回答
反對(duì) 回復(fù) 2019-11-27
?
森林海

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊

為了防止會(huì)話固定,這基本上是猜測(cè)SID或使用各種方法竊取它。無論您的會(huì)話邏輯多么復(fù)雜,從某種程度上來說,它肯定都會(huì)很容易被無聊的sessid竊取。因此,每次執(zhí)行重要操作時(shí)都必須重新生成ID。例如,如果您要在管理員中發(fā)布信息或更改設(shè)置,請(qǐng)首先運(yùn)行session-regenerate-id。然后,黑客必須經(jīng)歷再次對(duì)您進(jìn)行黑客攻擊的過程?;旧希@使黑客可以一次浪費(fèi)一次ID的機(jī)會(huì)。


http://us.php.net/manual/zh/function.session-regenerate-id.php


或者您可以每隔一圈更改ID


if($ _ SESSION ['counter'] == 3){session_regenerate_id(); $ _ SESSION ['counter'] == 0}


另外,$ _SERVER ['HTTP_USER_AGENT']也不是很可靠。嘗試避免這種情況不僅是因?yàn)檫@個(gè)原因,還因?yàn)樗鼘?duì)黑客很方便,因?yàn)樗麄冎来韽V泛用于此目的。而是嘗試使用$ _SESSION ['id_token'] = sha1(一些瘋狂的信息,例如文件內(nèi)存,文件名,時(shí)間)。


查看完整回答
反對(duì) 回復(fù) 2019-11-27
  • 3 回答
  • 0 關(guān)注
  • 731 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)