Как обращаться с гостевым пользователем, просматривающим сообщение?

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=""; to above else так что теперь это утверждение:

if(!empty($_GET['username'])) { 
$username = $_GET['username'];
}
else if(!empty($_SESSION['username'])) { 
$username = $_SESSION['username'];
}
else{
$username="";
}

Это хотя и решило мою проблему, но я хочу быть уверенным, есть ли какой-либо риск для безопасности или другая проблема, используя этот метод. Любая лучшая идея приветствуется.

  • 0
    Мы не можем сказать вам риски безопасности, не зная, что подвергается. При этом $_GET['username'] не гарантирует, что пользователь вошел в систему. Любой может ввести переменные GET (или POST).
Теги:
session

1 ответ

1
Лучший ответ

сначала использовать метод post для получения данных

//после успешного входа

$username = $_POST['username'];
 $_SESSION['loggedin'] = generate token or true or false ur choice;

//restrict this in ur all contructor of view
if($_SESSION['loggedin']){
//ur accessible here you are authorized;
}
else {
//sorry we are redirecting you;

}
Сообщество Overcoder
Наверх
Меню