2

我有一个 WebAPI,我需要发送一个标识学生 ID 的唯一密钥。由于我使用的是 ajax 调用,因此我必须将该唯一的学生 ID 发送到服务以获取该学生的记录。最终用户可以通过查看源代码或开发人员工具以某种方式(隐藏的 html 字段或 url post 或 get 参数)看到这一点。如何防止学生查看我的方案并将 id 更改为另一个学生,从而访问其他人的数据?或者密切相关的查看历史并找出最后一个学生的 id 并访问他们的历史?

4

3 回答 3

2

永远不要相信客户。切勿通过未加密的链接或不安全(不受信任)的客户端发送敏感数据。在您的场景中,您将需要维护一个能够管理其自身安全性的服务器端会话。例如,仅访问正确的学生详细信息。为该会话提供一个唯一的、非连续的密钥,将该密钥加盐并将其用作返回给客户端的会话 ID。当客户端进行进一步的交互时,使用该令牌来识别会话,但从不信任它来验证所有进一步的交互。这是您会话的工作。

于 2012-10-03T14:19:19.690 回答
1

您应该使用众所周知的算法(如 3DES 或 Rijndael)对通过网络传输的任何敏感信息进行加密,并在端点处解密。

于 2012-09-28T23:57:18.990 回答
1

使用您的 WebAPI 的任何人都必须首先提供登录凭据。您应该使用会话变量和会话 cookie 在服务器端存储学生 ID 等信息。如果用户告诉您他们是学生“XYZ”,您应该能够在返回任何其他信息之前在服务器端对其进行验证。另外,请注意这仍然不安全,因为恶意用户仍然可以窥探客户端发送到服务器的数据包,并使用它来冒充您的用户。一个适当保护的系统应该对所有包含敏感数据的流量使用 HTTPS。

于 2012-09-29T00:16:34.567 回答