【发布时间】:2019-08-29 13:36:55
【问题描述】:
我想将“用户 ID”从一个页面发送到另一个页面。但条件是我想以安全的方式发送数据。我可以通过 GET 方法发送 ID。
假设我使用这种方式使用 GET 方法发送数据。
<a href="profile.php?id=<?php ; echo $id ; ?>">
例如。这是我得到的网址:
http://localhost/joli/profile.php?id=23
我的 profile.php 包含以下代码:
include ('header.php') ;
if($_SERVER['REQUEST_METHOD'] =="GET")
{
echo "YES" ;
}
else{
echo "NO";
}
include('footer.php') ;
?>
现在的问题是,如果我直接访问 URL 。页面被加载并打印“YES”。 我想要一些限制,用户不能直接通过 URL 获取信息。 只有在从上一页按下 Read more 按钮时,此页面才应传递数据。
我希望我的问题很清楚。
【问题讨论】:
-
一种方法是加密 ID 并像加密值一样传递它,然后在目标文件上解密,以便您可以使用它。这样一来,简单的用户就很难只输入link?id=some_number。不是100%安全!值可以解密!你不能阻止用户直接访问某个 URL,但你可以让他很难猜到参数。
-
执行此操作的安全方式是将用户 ID 存储为会话变量,然后检索它。
-
@BudimirSkrtic 你有什么例子吗?
-
看看这个。 stackoverflow.com/questions/20014118/… Dan Green-Leipciger 的回答。我在我的一个项目中使用过它。确实根据我的需要进行了一些调整,但它会为您指明正确的方向。
-
我突然想到你可能需要一个 SESSION