我的标题可能含糊不清,所以请检查下面我的情况。
我有一个网络应用程序来管理员工列表。该应用程序采用中心辐射模式设置,单击员工列表中的员工会重定向到一个新窗口,显示所选员工的个人详细信息以进行可能的更新。
该应用程序使用 HTTPS。通过 GET 检索员工列表和详细信息,同时通过 POST 更新详细信息。该应用程序使用 HTTPS,所有用户(只有我们几个人)都有权检索和更新员工详细信息。
我的问题是,在更新/发布操作期间是否仍然需要或建议检查员工 ID(主键)?理论上,经验丰富的用户可以在 POST 之前更改员工 ID 并更新另一名员工的详细信息,甚至无需提取第二名员工的记录。尽管如此,即使该用户以某种方式欺骗了界面,他的任何“黑客”行为都是可以接受的,因为用户无论如何都可以检索和更新任何员工。
因此,就我而言,您是否仍然认为有必要强制执行一种机制,以便只有当前显示的记录可更新?如果是,实施这一点的公认做法是什么?谢谢
许多基于网络的系统被设计为无状态的。主要原因是允许多个会话/窗口。
您可以将当前编辑的员工 ID 存储在会话变量中,并且只允许更改该员工 ID,但是,如果用户在同一会话中打开两个浏览器窗口怎么办?现在,您必须保留每个窗口当前编辑的员工 ID。好吧,您没有这些信息,因此您必须将员工 ID 存储在表单本身中,而这一切都可以由客户编辑。
因此,只需在服务器上强制执行规则,如果他们有权编辑该员工,就让他们编辑。
确保您的系统使用 HTTPS 来防止中间人攻击、转义所有输出以防止跨站点脚本 (XSS)、要求所有更新都使用 POST 以及使用会话和表单令牌来防止跨站点请求伪造 (CSRF) 。完成此操作后,任何员工 ID 操纵都可能是自己造成的,而您的工作并不是保护用户免受自身伤害。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)