我有一个名为Vouchers
的集合。如果用户知道凭证的唯一编号ID,则可以声明"声明"该凭证将为其提供user_id
属性,并将其绑定给他们。
我需要检查用户对现有数据库的ID查询,但我想知道我是否可以在客户端而不是服务器上执行此操作(客户端会更方便,因为我使用实用程序函数将查询表单绑定到数据库操作......这是一个很长的故事)。如果我在客户端上这样做,我将不得不使用正确的user_id
字段发布整个凭证集合,虽然我不会通过任何模板显示这些ID,但它们可以通过控制台。
发布所有这样的ID是否存在固有的风险?它们是否可以被恶意使用,即使我没有留下任何特定的漏洞供他们使用?
答案 0 :(得分:1)
首先,将所有user_ids
发布到客户端通常听起来不错。如果你有100万用户会怎么样?这将是很多数据。
其次,具体而言,我们无法知道发布您的user_id
是否存在固有风险,因为我们不知道您的系统可以用它做什么。如果您使用用户自己选择的user_id
的典型设计(例如电子邮件),那么即使攻击者猜到了user_id
,您也必须将系统设计为安全。
答案 1 :(得分:0)
简短版本:不太好主意。
我有类似的设置:用户可以注册,如果她知道优惠券代码。您只能发布user_id
与登录用户相同的优惠券。所有其他检查如"用户输入是否与有效凭证相对应?"必须在服务器上处理。
请记住:客户端代码不信任。