0

在开发Wave Framework时,我非常关注 API 请求的安全模型。我必须确保 API 请求可以在任何可能的地方通过 HTTP 发出,同时防止潜在的中间人攻击、数据篡改等。

我最终从输入数据中构建了一个 GET 字符串,并从中生成 SHA-1 哈希,同时使用 API 配置文件密钥对其进行加盐处理。这非常有效,并尽可能多地保护 API。

但我的 API 也允许通过 HTTP 上传文件等。目前我完全忽略了文件上传相关的数据(我将它用于缓存签名,但不用于数据验证)。这意味着恶意中间人可以在传输文件时从技术上更改文件内容。

有没有其他选择?当然我可以在文件发送到服务器端时实现这一点(例如计算文件内容作为验证哈希的一部分),但如果上传是通过 Web 浏览器并通过 JavaScript 启动的,那不是一个选项?

其他框架是如何处理这个问题的?我试图搜索但找不到足够的信息。谢谢!

4

1 回答 1

0

如果我理解正确,您的框架会创建一个网页,用户可以在其中上传文件。在这种情况下,防止中间人的唯一方法是使用 ssl。

请记住,在这种情况下,中间人也能够更改用户在上传数据时与之交互的网页。假设您创建了一个 javascript,它以某种方式使用用户输入的密码加密了文档。中间人可以轻松更改 javascript 以加密他的假文档并丢弃真实文档。

如果安全是 Web 上的一个问题,并且您需要防止中间人,那么 SSL 是必需的。没有其他办法了。

于 2012-09-17T20:50:45.463 回答