Ich versuche, wenn meine Referrer String von jeder URL kommt mit dem Format https://www.google.com/ {{etwas}} zu überprüfen:Wie kann ich meine REFERER-URL mit glob validieren?
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.");
}
Hier ist der glob:
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;
}
Hat die Referrer-URL muss ein direkter Treffer sein oder wird es automatisch wissen, ob es von der Basis-URL kommt, https://www.google.com?
Ich nehme an, ich kann einfach .contains
verwenden, anstatt sicherzustellen, dass die Zeichenfolge gleich einem regulären Ausdruck ist? Ist da etwas nicht in Ordnung?
Und die Regex ist in der verstanden Schnur? – santafebound
Sorry, hab dich nicht verstanden. Hast du 'startsWith' versucht? –
Ja. Startswith funktioniert. Ich frage mich, ob ich nur fragen kann, ob die URL-Zeichenkette mit dem Regex-Ausdruck übereinstimmt, den Sie angegeben haben. – santafebound