我通過檢查會話的值來保護我的頁面。如果會話無效,是否有更安全的方法來保護我的頁面,而不是更改標題位置?我正在做什麼嗎?PHP有沒有比使用標題(位置)更好的方法來保護我的頁面?
我必須在每一頁的頂部以下內容:
<?php
session_start();
//VERIFY LOGIN
$validkey = 'br1ll1ant)=&';
if ($_SESSION['valid'] != (hash('sha256',$validkey)) && $_SESSION['tokenconfirm'] != hash('sha256',$_SESSION['tokenID'])) {
header("location:/login/");
};
?>
爲什麼要在會話中放置散列值?它不像用戶可以直接訪問它們;我想他們會提前知道價值。那麼有什麼意義呢? – Aillyn 2010-08-31 17:56:59
兩個方面的注意事項:其實你的頭()呼叫是不符合RFC的。你應該總是指定一個有效的URL和protocoll和hostname。關於會話中的散列:我認爲這是很好的做法,因爲這樣會話文件可以在不知道密碼的情況下被攻擊者讀取。 (攻擊者可以通過其他錯誤有意識地讀取系統上的任意文件 - 以防萬一!); – 2010-08-31 18:28:40
在會話中散列密碼仍然不會改變密碼以明文存儲的事實。如果一個漏洞允許攻擊者查看臨時會話變量(這通常是世界可讀的),那麼相同的攻擊者應該能夠讀取Web根文件(通常是世界可讀的),包括包含密碼的PHP源文件。實際上, – leepowers 2010-08-31 18:42:45