我有一个 AJAX 应用程序,它将调用一个 servlet 来运行报告并返回一个 PDF。这一切都很好,除了用户将看到一个网页,该网页将包含报告名称和他们的客户 ID。更改客户 ID 将允许他们为另一个人运行相同的报告。哎呀!
我记得一些关于 URL 重写的事情,它被可疑地用于会话管理。我想知道我是否可以只修改我的 servlet 中的 URL,以便用户返回的内容不会被黑客攻击以获取其他报告。我该怎么办?
另外,有没有人有更好的主意?
谢谢。
我有一个 AJAX 应用程序,它将调用一个 servlet 来运行报告并返回一个 PDF。这一切都很好,除了用户将看到一个网页,该网页将包含报告名称和他们的客户 ID。更改客户 ID 将允许他们为另一个人运行相同的报告。哎呀!
我记得一些关于 URL 重写的事情,它被可疑地用于会话管理。我想知道我是否可以只修改我的 servlet 中的 URL,以便用户返回的内容不会被黑客攻击以获取其他报告。我该怎么办?
另外,有没有人有更好的主意?
谢谢。
只需使用(匿名)会话 ID 作为文件部分。并通过添加会话 ID 让 servlet 流式传输文件系统中的文件。
这假设控制流不能因为 Ajax 而更容易完成并且一次做两件事。
好吧,正如 GarethL 在他的评论中所说,用户应该必须登录。然后您可以将客户 ID 存储在会话中并使用它而不是参数。
问题是您首先需要以某种方式确认用户的身份,最简单的方法是密码。
我最终编写了一个代理 servlet 来复制内容。这是由在会话中存储 URL 参数的哈希键触发的。这为我提供了所需的所有安全性。
谢谢。