2014-10-09 61 views
1

我有一个名为Vouchers的集合。如果用户知道凭证的唯一号码ID,则可以“声明”该凭证,该凭证会赋予其一个user_id属性,将其绑定给他们。发布其他用户的ID是否存在内在风险?

我在一个点,我需要检查一个用户的ID查询对现有的数据库,但我想知道如果我可以这样做在客户端而不是服务器(客户端会更方便,因为我使用效用函数将查询表单与数据库操作绑定在一起......这是一个很长的故事)。如果我在客户端上这样做,我将不得不使用正确的user_id字段发布整个凭证集合,尽管我不会通过任何模板显示这些ID,但它们将通过控制台提供。

发布这样的所有ID是否存在固有的风险?即使我没有留下任何特定的漏洞供他们使用,他们是否可以被恶意使用?

回答

1

首先,一般来说,将所有user_ids发布到客户端似乎是个不错的主意。如果你有100万用户会发生什么?这将是很多数据。

其次,具体而言,我们不知道在发布您的user_id时是否存在固有风险,因为我们不知道您的系统中可以做些什么。如果你使用用户自己选择的典型设计user_id(例如电子邮件),那么即使攻击者猜到了user_id,你也必须设计你的系统是安全的。

+0

那么,我只会发布已经附加到一个优惠券的'user_id',所以它只会显示已经注册了一个用户的ID,而不是整个用户数据库。 – blaineh 2014-10-09 20:43:33

+0

这个尺寸没有什么区别。即使是1000张优惠券,它开始效率低下。 – 2014-10-09 20:48:29

0

简版:不太好的主意。

我有一个类似的设置:用户可以注册,如果她知道代金券代码。您只能发布user_id与登录用户相同的凭证。所有其他检查如“用户输入是否对应于有效凭证?”必须在服务器上处理。

请记住:客户端代码是而不是可信。

相关问题