有一种情况是用户通过URL
更改发送到servlet的参数是否有任何方法可以限制用户不要更改参数,
如果没有,我如何管理发送给servlet的所有参数?在他们很多的情况下,依次检查每一个是否合理?
答案 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。这样的信息需要进入会话,因为它存储在服务器上且不在用户的范围之内。