如果用户尝试通过url更改参数

时间:2011-05-11 20:45:19

标签: java jsp servlets

有一种情况是用户通过URL

更改发送到servlet的参数

是否有任何方法可以限制用户不要更改参数,

如果没有,我如何管理发送给servlet的所有参数?在他们很多的情况下,依次检查每一个是否合理?

5 个答案:

答案 0 :(得分:1)

您不能限制用户向您发送任何内容。

您可以在服务器端添加限制。

通常你只得到你需要的参数,所以额外的参数不应该打扰你。

答案 1 :(得分:0)

你无法避免有人输入URL,但是你在servlet中所做的是使用一些java代码过滤从URL收到的输入。

示例:

刚刚找到一个有趣的链接,其中使用Servlet过滤器来过滤XSS攻击(如您所见,没有这样的代码可以避免某人在URL中键入某些字符或类似字符):Link < / p>

答案 2 :(得分:0)

您一定要检查发送到您的servlet的参数。这基本上就是你做的事情,因为客户端(例如网页)与你的应用程序通信的方式。

答案 3 :(得分:0)

最简单的方法是使用一些隐藏的秘密来散列参数,然后将其与URL一起传回,然后将哈希值与URL参数进行比较,以确保它们匹配。

另一种方法是不使用单个参数,而是将它们加密成一组编码字符,并在返回时解密整个事件。

如果您不关心用户是否看到实际参数,则哈希更容易实现。

答案 4 :(得分:0)

简而言之,您无法阻止用户更改参数。

您必须对所有参数值进行输入验证。如果您有一个包含敏感信息的变量,则不要将其放在URL上。一个非常糟糕的例子:http://mydomain.com/myservlet?isAdmin=1。这样的信息需要进入会话,因为它存储在服务器上且不在用户的范围之内。