我有一个WebAPI,我需要发送一个标识学生ID的唯一键。由于我正在使用ajax呼叫,因此我必须将该唯一的学生ID发送到该服务以获取该学生的记录。最终用户可以通过某种方式通过视图源或开发人员工具(隐藏的html字段或url post或get参数)看到这一点。 如何阻止学生查看我的计划并将ID更改为其他学生,从而访问其他人的数据?或者密切关注历史,找出最后一个学生的身份并访问他们的历史记录?
答案 0 :(得分:2)
永远不要相信客户。切勿通过未加密的链接或不安全(不可信)的客户端发送敏感数据。在您的方案中,您将需要维护一个能够管理其自身安全性的服务器端会话。只访问正确的学生详细信息。为该会话提供一个唯一的,非连续的密钥,密钥和密钥,并将其用作返回给客户端的会话ID。当客户端进行进一步的交互时,使用该令牌来识别会话但从不相信它来验证所有进一步的交互。这是你的课程的工作。
答案 1 :(得分:1)
您应该使用众所周知的算法(如3DES或Rijndael)加密任何通过网络传输的敏感信息,并在端点进行解密。
答案 2 :(得分:1)
使用WebAPI的任何人都必须首先提供登录凭据。您应该使用会话变量和会话cookie在服务器端存储学生ID等信息。如果用户告诉您他们是学生'XYZ',您应该能够在返回任何其他信息之前在服务器端进行验证。此外,请注意,这仍然不安全,因为恶意用户仍然可以窥探客户端发送到服务器的数据包,并使用它来模拟您的用户。正确安全的系统应该对包含敏感数据的所有流量使用HTTPS。