代码之家  ›  专栏  ›  技术社区  ›  Efannnnnn

将Id数据存储到任何页面

  •  0
  • Efannnnnn  · 技术社区  · 1 年前

    我想问几个问题。作为一名全栈开发人员,我是个新手,在这个平台上提问很难。但我希望这个平台上的所有用户都能理解我想问的问题。

    将要编辑的数据id传输到另一个页面时遇到问题。通常,我会通过将id嵌入链接href来转移它。

    <a href="./action/plan-edit.php?idplan=<?= $id_plan ?>&idprice=<?= $id_pricing ?>" class="p-2 bg-gradient-to-tl from-blue-600 to-cyan-400 text-white rounded-lg transition-colors duration-300 cursor-pointer">
    

    但一次又一次,我意识到这并不安全,因为我可以在url页面中看到id。我似乎对此感到不安。

    我想知道是否有最好的方法将id数据存储到任何页面,这样我的id数据看起来都是安全的。我希望你们能理解并帮助我解决这个小问题。

    1 回复  |  直到 1 年前
        1
  •  0
  •   Aliza Ali    1 年前

    您可以使用以下方法之一,而不是将ID直接嵌入链接中:

    1. 加密 :在将ID发送到URL之前对其进行加密,并在接收页面上对其进行解密。

      $encrypted_id = openssl_encrypt($id_plan, 'aes-256-cbc', 'encryption_key', 0, 'encryption_iv');
      $decrypted_id = openssl_decrypt($encrypted_id, 'aes-256-cbc', 'encryption_key', 0, 'encryption_iv');
      

      您还可以参考本文了解有关加密ID的更多信息: Encrypt and Decrypt String Text IDs for URL using PHP .

    2. HTTP POST请求 :使用POST方法提交请求并从隐藏字段获取ID。

      <form action="./action/plan-edit.php" method="post">
          <input type="hidden" name="idplan" value="<?= $id_plan ?>">
          <button type="submit">Edit</button>
      </form>
      
    3. 会话中的存储ID :虽然不是我的首选,但您可以将ID存储在服务器端的会话变量中。

      session_start();
      $_SESSION['id_plan'] = $id_plan;
      header("Location: ./action/plan-edit.php");
      exit();