簡體   English   中英

如何使用get方法以安全的方式發送用戶ID

[英]how to send user id in secure way using get method

我正在嘗試保護我的用戶ID。 我必須頁面user.phpuser_account.php 我通過錨標記將用戶發送到user_account.php

user_account.php頁面中,它顯示了這個普通的user_id(例如25、26,23)。 這對我的應用程序是潛在的安全威脅。 我必須基於從user.php page發送的user_id進行一些操作。

我知道首先必須對其加密 ,然后再將其解密

這是我的代碼:

echo '<a href="user_account.php?id='.$single_id.'">'.$user_name.'</a>'; 

我是從user.php頁面發送的。 和user_account.php頁面只是通過get方法獲取它。

但是我該如何安全地發送它並防止用戶操縱它

。任何幫助之王將不勝感激

防止濫用用戶ID的最佳方法是對用戶進行身份驗證,並檢查經過身份驗證的用戶是否有權訪問該用戶。

在旁邊

一旦知道哈希算法,其他答案所建議的任何其他“加密”方法都是可逆的。 您可以在其中添加一些鹽,但是我強烈建議您不要破壞自己的安全性,尤其是在這種非常特殊的情況下。 您希望一種通用化的方法可以在您希望安全的應用程序的其他區域中重用,否則最終將導致意大利面條式代碼。

另外,這幾乎不用說,但是您也應該使用SSL。

只需使用base64_encode()和base64_decode()方法來加密和解密您的ID,如下所示:

user.php

echo '<a href="user_account.php?id='.base64_encode($single_id).'">'.$user_name.'</a>'; // encrypt id

user_account.php

$single_id = base64_decode($_GET['id']); // get id and decrypt it.

您可以在此處使用crypt()

加密您的$ user_id

<?php
// Get the hash of $user_id
$single_id = crypt($user_id);
echo '<a href="user_account.php?id='.$single_id.'">'.$user_name.'</a>';
?>

現在如下解密

if (hash_equals($single_id, crypt($user_id, $single_id))) {
   echo "User Id matched";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM