2013-02-15 171 views
1

我有一个AJAX应用程序,它将调用一个servlet来运行报告并返回PDF。这一切都工作得很好,除了用户将会看到一个网页,其中将包含报告名称和客户ID。更改客户ID可以让他们为其他人运行相同的报告。哎呀!删除网址

我记得一些关于URL重写的问题,这个问题被用于会话管理。我想知道是否可以修改我的servlet中的URL,以便用户获取的内容不会被黑客窃取以获取其他报告。我将如何去做这件事?

此外,有没有人有更好的主意?

谢谢。

+0

如果数据是保留的,你应该让用户登录后才能看到它...... – GarethL 2013-02-15 15:38:41

+0

你一般如何验证/授权请求? – 2013-02-15 15:46:42

+0

用户必须经过身份验证才能运行报告。但我无法阻止经过身份验证的用户看到其他报告。所以这个问题与认证无关。 – Thom 2013-02-15 16:03:52

回答

0

我写了一个代理servlet来复制内容。这由在会话中存储URL参数的散列键来触发。这给了我所需要的所有安全性。

谢谢。

0

只需使用(匿名)会话ID作为文件部分即可。让一个servlet通过添加会话ID来传输文件系统中的文件。

这假设控制流不能因为Ajax而变得简单,并且一次执行两件事情。

0

好吧,正如GarethL在他的评论中已经指出的那样,用户应该登录。然后,您可以将客户ID存储在会话中,并使用它来代替参数。

问题是,你首先需要以某种方式确认用户的身份,最简单的方法是密码。