正则表达式检查URL

时间:2015-01-14 10:54:08

标签: java regex url

我收到了以下格式的redirect网址。

String redirectUrl = "http://beta.test.com/response";

我们必须根据存储在我们的数据库中的网址验证此网址,该网址包含redirectUrl的首字母,如下所示。

String initial = "http://beta.test.com";

因此,对于验证,我们在下面进行。

if(redirectUri.startsWith(initial)){
   match = true;
}

但是,用户也可以传递redirectUrl以下的值。

   "http://beta.test.com.attacker.com/response"
   "http://beta.test.com-attacker.com/response"
   "http://beta.test.comattacker/response"

以上所有内容都是无效的网址,但会传递我们的startsWith条件。我无法直接与DB匹配。我正在寻找一些regex模式来检查这一点,但到目前为止还无法实现。

2 个答案:

答案 0 :(得分:2)

此处仍然不需要正则表达式。您可以在初始URL中附加斜杠并调用相同的starsWith方法:

if(redirectUri.startsWith(initial + "/")){
   match = true;
}

答案 1 :(得分:0)

也许可以帮到你:

(^.*)\/.*$

enter image description here

网址:https://www.regex101.com/