0

我将 GET 请求发送到 weblogic 12c 服务器,该服务器携带用户信息,在服务器端我获取这些信息来处理请求。

GET 请求如下所示:

URL:/prem/JSP/xml/prems.jsp?username=rjanga&password=1234roh#&address=3450Rivast&city=FT+COLLINS&state=CO&zip=80526。

因为我的密码中有一个“#”符号,所以 weblogic 服务器会忽略它以及它之后的任何内容。

它只将 url 视为 /prem/JSP/xml/prems.jsp?username=rjanga&password=1234roh (忽略符号 '#' 和它后面的所有字符串,如地址、城市..等)

在做了一些研究并通过这个链接之后, 我尝试了其中提到的解决方案。

但它没有帮助,任何帮助表示赞赏。

4

1 回答 1

2

您将不得不对密码字段进行编码。将密码放在 URL 中是非常不安全的。你不应该这样做。也就是说,这里有一些信息:

来自http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html

URL 类本身并不根据 RFC2396 中定义的转义机制对任何 URL 组件进行编码或解码。调用者有责任对在调用 URL 之前需要转义的任何字段进行编码,并对从 URL 返回的任何转义字段进行解码。此外,由于 URL 不知道 URL 转义,因此它无法识别同一 URL 的编码或解码形式之间的等价性。例如,两个 URL:

http://foo.com/hello world/ 

http://foo.com/hello%20world

将被视为彼此不相等。

请注意,URI 类在某些情况下会执行其组件字段的转义。管理 URL 编码和解码的推荐方法是使用 URI,并使用 toURI() 和 URI.toURL() 在这两个类之间进行转换。

对这些 URL 字符串进行编码和解码将由您决定。

于 2013-08-20T21:20:48.277 回答