1 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊
我的桌子對(duì)嗎?
不。
除了$_SESSION
所有這些 superglobals 之外,都包含從客戶端請(qǐng)求中提取的數(shù)據(jù)??蛻舳丝梢詾樗鼈冎械娜魏我粋€(gè)設(shè)置初始值(對(duì)于給定的 PHP 程序運(yùn)行)。
客戶無法閱讀其中任何一個(gè)。(他們可以讀取由瀏覽器發(fā)送或存儲(chǔ)在瀏覽器中的所有數(shù)據(jù),并從中推斷出任何超全局變量中的數(shù)據(jù)($_SESSION
仍然除外),但他們自己無法讀取超全局變量)。
客戶端不能編輯它們中的任何一個(gè)(除非發(fā)出一個(gè)新的請(qǐng)求,它會(huì)從頭開始重新運(yùn)行 PHP 程序)。
$_SESSION
包含存儲(chǔ)在服務(wù)器上的數(shù)據(jù)。可以使用存儲(chǔ)在 cookie 中并由客戶端發(fā)送的 SESSION ID 選擇特定會(huì)話。
任何人都可以在 DOM 中添加偽造的表單來發(fā)布任何內(nèi)容,或者使用簡(jiǎn)單的 Chrome 擴(kuò)展程序(如 EditThisCookie)來讀取、創(chuàng)建或編輯任何 COOKIE。
是的。不要盲目相信來自客戶端的數(shù)據(jù)??蛻舳丝梢栽?cookie、查詢字符串或帖子正文中發(fā)送它想要的任何數(shù)據(jù)。
或者有時(shí)我使用 POST 方法來驗(yàn)證調(diào)用來自特定頁面,但后來我意識(shí)到客戶端可以讀取該表單的內(nèi)容并從任何地方偽造它。我也應(yīng)該為此目的使用 SESSION 嗎?
你可能不應(yīng)該關(guān)心。
(誘騙第三方提交虛假數(shù)據(jù)另當(dāng)別論,但請(qǐng)看這個(gè)問題)。
我應(yīng)該在哪里存儲(chǔ)敏感數(shù)據(jù),例如訪問令牌或用戶 ID?
訪問令牌(假設(shè)它們是旨在讓特定用戶訪問某些東西的令牌,而不是(比如)您的服務(wù)器應(yīng)該用來訪問第三方服務(wù)器的 API 密鑰)需要存儲(chǔ)在客戶端上。具體位置取決于您將如何使用它。大多數(shù)情況下,會(huì)話 ID 就可以了。
用戶 ID(假設(shè)它們被用作用戶是該用戶 ID 的證據(jù))需要以不能被編輯為其他人的方式存儲(chǔ)。這意味著要么存儲(chǔ)在服務(wù)器上(通常在會(huì)話中),要么以無法更改的格式(如客戶端上的加密 JWT)。
- 1 回答
- 0 關(guān)注
- 84 瀏覽
添加回答
舉報(bào)