【发布时间】:2010-07-09 10:10:59
【问题描述】:
我是 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;
}
?>
请写出我错过了什么以及可以通过何种方式直接访问我的控制器或其他安全问题(如果您可以举例说明)。
编辑:
如果我没有用户登录,可以通过在代码执行后杀死它 controller.php 的会话来保护它,然后当用户返回 view.php 时,将创建新的会话 ID。
不过,在大多数情况下,由于站点的其他组件,我们无法终止会话。
谢谢
【问题讨论】: