2016-05-12 408 views
-1

在我的網站上,有一個用戶的個人資料頁面。我目前所做的只是通過GET請求傳遞用戶ID,並用它來查詢用戶的詳細信息。在個人資料網址中顯示用戶ID是否安全?

因此,用戶個人資料網址是這樣的...

http://www.example.com/user.php?id=345 

所以,我的問題是,是安全的URL中顯示該用戶的ID(用戶表的主鍵),所以,任何人都可以看到它......?

+0

這是完全正常的。我想這取決於你會認爲不安全的東西,這可能會以任何方式被利用? – JimL

+1

如果你沒有清理傳入的數據,那就是了。一般來說,它對系統本身來說不是脆弱的,只是暴露了第三人的ID,不多也不少。作爲建議,你可以在數據庫中使用散列作爲'id'(壞髒例子md5('email' + salt)或類似的東西)。 – Wizard

+0

怎麼樣增加另一個字段到表中有另一個唯一的數字。 ?並用它來查詢記錄? – TharinduLucky

回答

1

這很正常。

但我建議你有一個表單驗證,以防止SQL注入。永遠不要相信什麼用戶給你

我會用那種表情,但另外

if (!preg_match('/^[0-9]+$/', $_GET['id'])) { 
    echo 'ID disallowed.'; 
} 

或有數字的限制(1相匹配,以999999)

if (!preg_match('/^[0-9]{1,6}$/', $_GET['id'])) { 
    echo 'ID disallowed.'; 
} 
相關問題