对JSON 劫持的最佳防御是什么?
任何人都可以列举标准防御,并解释它们的优缺点吗?以下是我看到的一些防御建议:
- 如果 JSON 响应包含任何机密/非公开数据,则仅在请求经过身份验证时才提供响应(例如,带有指示经过身份验证的会话的 cookie)。
- 如果 JSON 数据包含任何机密或非公开内容,请将其托管在不可猜测的秘密 URL 上(例如,包含 128 位加密质量随机数的 URL),并且仅与授权查看的用户/客户端共享此秘密 URL数据。
- 放在
while(1);
JSON 响应的开头,并让客户端在解析 JSON 之前将其剥离。 - 让客户端以 POST(而不是 GET)的形式发送对 JSON 数据的请求,并让服务器忽略对 JSON 数据的 GET 请求。
这些都安全吗?是否有任何理由选择其中之一而不是其他?我还缺少其他防御措施吗?