在我的应用程序代码中,我使用这种URL将用户从一页重定向到另一页:http://myhost:8001/myapp/list.jsp?name=abc'd&age=10
这里的name是动态字段,用户可以在第一页上编辑该字段,其中可以包含单引号。
现在的问题是,当我使用siteminder进行身份验证时,每个网址都将通过它。并且siteminder认为此单引号是对此类攻击的尝试,并阻止了该url,并将用户带到某些访问被阻止的页面。
我该如何解决这个问题?
最佳答案
我认为URI编码不起作用-Siteminder足够聪明,可以弄清楚这一点。其他某种编码,例如base64,或者只是用其他东西替换撇号,然后在服务器端将其替换回去。或者,您可以在Siteminder代理配置中禁用BadCSSChar检查撇号。请注意,您可能正在使您的站点面临XSS攻击,并且您的应用程序必须负责检查用户提供的任何字符串,然后才能在网页上显示它们。