【发布时间】:2016-05-27 09:56:58
【问题描述】:
我正在尝试检查我的引用字符串是否来自任何格式为 https://www.google.com/{{anything}} 的 URL:
String referrer = req.getHeader("REFERER");
if (!(referrer.equals("https://www.google.com")) + createRegexFromGlob("*")) {
System.out.println("The referrer is valid.");
} else {
System.out.println("The referrer is not valid.");
}
这里是全局:
public static String createRegexFromGlob(String glob)
{
String out = "^";
for(int i = 0; i < glob.length(); ++i)
{
final char c = glob.charAt(i);
switch(c)
{
case '*': out += ".*"; break;
case '?': out += '.'; break;
case '.': out += "\\."; break;
case '\\': out += "\\\\"; break;
default: out += c;
}
}
out += '$';
return out;
}
引荐来源网址必须是直接点击还是会自动知道它是否来自基本网址https://www.google.com?
我想我可以只使用.contains 而不是确保字符串等于某个值加上一个正则表达式?这有什么问题吗?
【问题讨论】: