spam heuristics

This commit is contained in:
Arndt Brenschede 2021-05-26 08:36:52 +02:00
parent 55a159af5d
commit cdac1cc5aa

View file

@ -87,6 +87,7 @@ public class RouteServer extends Thread implements Comparable<RouteServer>
String agent = null; String agent = null;
String encodings = null; String encodings = null;
String xff = null; // X-Forwarded-For String xff = null; // X-Forwarded-For
String referer = null;
// more headers until first empty line // more headers until first empty line
for(;;) for(;;)
@ -120,6 +121,14 @@ public class RouteServer extends Thread implements Comparable<RouteServer>
{ {
xff = line.substring( "x-forwarded-for: ".length() ); xff = line.substring( "x-forwarded-for: ".length() );
} }
if ( line.startsWith( "Referer: " ) )
{
referer = line.substring( "Referer: ".length() );
}
if ( line.startsWith( "Referrer: " ) )
{
referer = line.substring( "Referrer: ".length() );
}
} }
InetAddress ip = clientSocket.getInetAddress(); InetAddress ip = clientSocket.getInetAddress();
@ -149,6 +158,17 @@ public class RouteServer extends Thread implements Comparable<RouteServer>
} }
} }
if ( referer != null && referer.indexOf( "brouter.de/brouter-web" ) >= 0 )
{
if ( getline.indexOf( "%7C" ) >= 0 && getline.indexOf( "%2C" ) >= 0 )
{
writeHttpHeader( bw, HTTP_STATUS_FORBIDDEN );
bw.write( "Spam? please stop" );
bw.flush();
return;
}
}
if ( getline.startsWith("GET /favicon.ico") ) if ( getline.startsWith("GET /favicon.ico") )
{ {
writeHttpHeader( bw, HTTP_STATUS_NOT_FOUND ); writeHttpHeader( bw, HTTP_STATUS_NOT_FOUND );