1
我有一個post.php
頁面,其中顯示我的網站上的帖子。它根據訪問它的用戶類型顯示功能/鏈接,就像寫博文的用戶(會話持有者)一樣,它將顯示編輯和刪除按鈕,而不是針對其他人。 對於這個我使用會話:如何處理來賓用戶查看帖子?
if(!empty($_GET['username'])) {
$username = $_GET['username'];
}
else if(!empty($_SESSION['username'])) {
$username = $_SESSION['username'];
}
else{
// do nothing
}
現在的問題訪客用戶產生(用戶未登錄)的會話持有人$_SESSION['username'];
可操作和LOGGED_IN用戶(而不是會話持有人)$_GET['username'];
是可操作的,所以訪客用戶在此頁面上獲取未定義的變量。爲了解決這個問題,我添加$username="";
以上else
語句,現在的說法是:
if(!empty($_GET['username'])) {
$username = $_GET['username'];
}
else if(!empty($_SESSION['username'])) {
$username = $_SESSION['username'];
}
else{
$username="";
}
這雖然解決了我的問題,但我想知道是否有使用這種方法的任何安全隱患或其他問題。歡迎任何更好的主意。
我們不能告訴你不知道什麼是暴露的安全隱患。也就是說,'$ _GET ['username']'不能確保登錄的用戶。任何人都可以輸入GET(或POST)變量。 – Fredrik