确保链接中携带的变量

问题描述

| 当将信息从一页移动到另一页时,是否有一种方法可以保护PHP链接中携带的变量?为了安全起见,因此护照号码不会以其原始形式显示在地址栏上。
<a href=\\\"edit_employee.PHP?$employee[passport_number]\\\">\" . $row[\'first_name\'];> 
    

解决方法

        使用urlencode()
<?php
$link = \'edit_employee.php?passport_number=\' . urlencode($employee[passport_number]);
echo \"<a href=\\\"$link\\\">test</a>\";
-编辑- 如果您不希望它显示在地址栏上,请使用$ _COOKIE或$ _SESSION
    <?php
    // a.php
    setcookie(\'number\',$employee[passport_number]);
// or $_SESSION[\'number\'] = $employee[passport_number];


    <?php
    //b.php
    echo $_COOKIE[\'number\'];
// or $_SESSION[\'number\']
    ,        这个问题的简单答案是,没有将您敏感的信息放在您公开的URL中(公开给使用该网站时看到该URL的任何人)。有很多方法可以通过对URL中的数据进行“隐藏”来对其进行“编码”,但是它们并不能真正保护数据。 如果要在URL中输入,唯一的选择就是使用双向加密方案对信息进行加密。这是CPU密集型的,可能不是必需的。 正如deceze和Alex Coles所建议的那样,处理此问题的一种方法是为每个员工分配一个唯一的随机ID号,然后使用该号码从数据库中提取敏感信息,以防止将其放置在URL中。鉴于您需要搜索(根据您的评论),此解决方案似乎是最合适的,请考虑以下示例: 员工姓名:John Doe 护照编号:123456789 员工编号:2899 在编写搜索代码时,只需返回如下链接:
<a href=\\\"edit_employee.php?$employee[employee_id]\\\">\" . $row[\'first_name\'];> 
然后只需在edit_employee.php页面上使用ID号从数据库中提取员工信息。 希望这可以帮助。     ,        您可以在会话中存储员工护照号码,但是最好为员工使用唯一的ID,而不是通过护照号码引用他们。     ,        从URL获取变量时,您可以在URL中指定变量的类型,例如“ 4”