2016-05-12 66 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.'; 
}