Я новичок в PHP.
Как я могу ограничить доступ пользователей к controller.php и разрешить доступ к нему только через view.php?
Мое предложение:
Я не знаю, правильно ли это, или как избежать прямого доступа роботов к нему.
view.php:
<?php
session_start();
$_SESSION['isFromView'] = true;
?>
<html>
<body>
<form action="controller.php">
<input type="submit"/>
</form>
</body>
</html>
controller.php
<?php
session_start();
if(!isset($_SESSION['isFromView'])||!$_SESSION['isFromView']){exit();}
else{
//code here
$_SESSION['isFromView']=false;
}
?>
Пожалуйста, напишите, что мне не хватает и каким образом мой контроллер может получить доступ напрямую или другие проблемы с безопасностью (если вы можете привести примеры, пожалуйста).
Edit:
В случае, если у меня нет логина пользователя, его можно защитить, убив сеанс, который он control.php, после выполнения кода, а затем, когда пользователь вернется в view.php, будет создан новый идентификатор сеанса.
Однако в большинстве случаев мы не можем завершить сеанс из-за других компонентов сайта.
Спасибо