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