首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止网址导航到网站上的管理页面

如何防止网址导航到网站上的管理页面
EN

Stack Overflow用户
提问于 2013-08-31 06:41:15
回答 2查看 1.3K关注 0票数 1

我想要创建一个注销/退出链接,从‘成员仅’的地区,我的网站。因此,我为此创建了一个logout.php脚本,登录链接将导航到该脚本,然后使用头文件重定向到index.php。我的问题是,如何通过输入logout.php来防止用户导航到脚本?

在任何情况下,你如何防止这种情况发生?

为求澄清:

我希望用户只使用注销链接,即点击它,而不是通过输入注销脚本的URL地址。

logout.php如下:

代码语言:javascript
复制
<?php
session_start();
if (isset($_SESSION['user'])){
    unset($_SESSION);
    session_destroy();
    header ('location: index.php');
}

?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-31 07:06:40

您可以通过将logout.php设置为POST页面而不是普通GET来阻止这种情况。其中一种方法是将您的注销链接更改为实际提交一个表单,而不仅仅是一个普通的链接。然后,在注销页面上,在注销之前检查表单是否真正提交。这意味着只要输入URL就不会被注销,而用户点击链接就会被注销。

这方面的一个例子是使您的HTML类似

代码语言:javascript
复制
<form action="logout.php" method="post" name="logoutform">
<input type="hidden" name="logout" value="y">
<a href="javascript:document.forms['logoutform'].submit()">Log Out</a>
</form>

您可能需要额外的CSS来删除表单样式。

logout.php中的代码可以是:

代码语言:javascript
复制
<?php
if ($_POST["logout"] == "y") {
    /* Getting here means they clicked the link, so log them out */

}

?>

您不能阻止它们在浏览器中键入logout.php,但这将确保它们只有在提交表单时才实际注销(即单击注销链接)。只要输入URL就会得到一个空白页。

票数 0
EN

Stack Overflow用户

发布于 2013-08-31 07:04:41

我希望用户只使用注销链接进行注销,而不是输入注销脚本的url地址。

不可能避免访问者在浏览器中更改地址栏URL。没有真正的方法来确定用户是如何访问logout.php的--通过直接输入网址或从网站上的页面输入URL。

我认为您是从错误的角度来处理这个问题,但是如果您真的想这样做,我建议您使用会话变量

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18545352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档