在网址上显示用户ID?例如:www.domain.com/user/1

时间:2017-12-10 13:33:32

标签: php sql laravel url dns

最佳做法是什么?

我有一个网站,其中有一个用户个人资料页面,您可以通过domain.com/user/1访问它。每个数字都显示我的数据库中的User_ID。我很好奇这是一个坏主意吗?我不是在进行SQL注入,但也许可以使用这些信息来对付我。我正在使用Laravel,它有一些基本的防止注射。

你怎么看?我应该使用随机数作为用户档案,还是根本不重要?

2 个答案:

答案 0 :(得分:2)

如果依赖!

如果只有id可以访问所有敏感信息,那么这就是一个问题。

但是,如果没有任何敏感信息 - 即使在创建帐户的id 1 之前取代帐户的ID也没有 - 那么就没有问题。

考虑例如https://stackoverflow.com/users/7009480/philipp-mochine,其中包含您在Stackoverflow上的用户ID。

1 多阶段注册将是一个问题:攻击者跳到最后一页并设置身份验证详细信息,而真人仍在填写他们的个人资料(修复:创建帐户然后用户可以填写所有内容。

答案 1 :(得分:2)

注意:在上下文中写入laravel

  

是的,这完全取决于你想要用它的目的。

让我们说,例如在简单的产品列表中看起来像的网址 http://www.demosite.com/seller/1234/products/1234

会披露相关的vendor idproduct id。所以,即使有人试图做像

这样的事情

http://www.demosite.com/seller/1235/products/1232 如果供应商或产品退出并且完全正常,则会失败。

此外,由于您正在使用laravel,所选路由可能只对用户进行身份验证,因此,实现了第一级安全性,您只担心内部用户,如果您仍然担心 使用哈希或加密(同样,它完全取决于数据的敏感性。)

你可以在这里看看... Laravel HashingEncryption

如果您有任何疑问,请回复..