在修改资料的模块中把用户 ID 放在 type=\"hidden\" 的 input 里面是否不安全

那你后面修改数据时是不是依赖用户这次提交的这个 id?如果我作为用户随便填一个别人的 id 提交,那他的资料是不是被我改掉了?敏感数据用 session 机制会更好一点,用户端只存一个 session id 。
■网友
我一般都是靠cookie辨认用户。。。
■网友
根本不用传。如果你系统当前用户是谁都不知道,系统怎么调出原来的资料放到表单中供用户修改的?
■网友
这不是 id 放哪里的问题,而是后端权限处理的问题,如果后端权限处理得当,即便前端如何伪造请求也没有问题。
■网友
像这种用session 非要隐藏,那就再再写一个,两者建立一个算法关系,服务器端把算法关系做比较,然后通过在做处理,但是也是不安全的,算法过于简单,很容易被攻破,总之,不要相信客户端的一切数据源 你们怎么看
■网友
永远不要相信客户端的输入……
■网友
显然不安全。我一般用加密Cookie。
■网友
1. 你打算修改当前登录用户的资料,那么用户id不需要传递,一般考虑从session中获取,登录的时候将id保存到session,编辑的时候从session读取。2. 当前用户是管理员?管理员修改其他用户的资料?这样的话,通过hidden input传递过来的ID,需要在后端进行权限判断,判断当前用户是否有权限修改传递过来的用户id。
■网友
可以用hashids


    推荐阅读