forked from I2P_Developers/i2p.i2p
filter logging
This commit is contained in:
@ -7,6 +7,9 @@ import javax.servlet.http.HttpServletRequestWrapper;
|
|||||||
|
|
||||||
//import org.owasp.esapi.ESAPI;
|
//import org.owasp.esapi.ESAPI;
|
||||||
|
|
||||||
|
import net.i2p.I2PAppContext;
|
||||||
|
import net.i2p.util.Log;
|
||||||
|
|
||||||
public class XSSRequestWrapper extends HttpServletRequestWrapper {
|
public class XSSRequestWrapper extends HttpServletRequestWrapper {
|
||||||
// Adapted from https://owasp-esapi-java.googlecode.com/svn/trunk/configuration/esapi/ESAPI.properties
|
// Adapted from https://owasp-esapi-java.googlecode.com/svn/trunk/configuration/esapi/ESAPI.properties
|
||||||
private static Pattern parameterValuePattern = Pattern.compile("^[a-zA-Z0-9.,:\\-\\/+=@_ \r\n]*$");
|
private static Pattern parameterValuePattern = Pattern.compile("^[a-zA-Z0-9.,:\\-\\/+=@_ \r\n]*$");
|
||||||
@ -36,14 +39,23 @@ public class XSSRequestWrapper extends HttpServletRequestWrapper {
|
|||||||
@Override
|
@Override
|
||||||
public String getParameter(String parameter) {
|
public String getParameter(String parameter) {
|
||||||
String value = super.getParameter(parameter);
|
String value = super.getParameter(parameter);
|
||||||
|
String rv = stripXSS(value, parameterValuePattern);
|
||||||
return stripXSS(value, parameterValuePattern);
|
if (value != null && rv == null) {
|
||||||
|
Log log = I2PAppContext.getGlobalContext().logManager().getLog(XSSRequestWrapper.class);
|
||||||
|
log.logAlways(Log.WARN, "URL \"" + getServletPath() + "\" Stripped param \"" + parameter + "\" : \"" + value + '"');
|
||||||
|
}
|
||||||
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHeader(String name) {
|
public String getHeader(String name) {
|
||||||
String value = super.getHeader(name);
|
String value = super.getHeader(name);
|
||||||
return stripXSS(value, headerValuePattern);
|
String rv = stripXSS(value, headerValuePattern);
|
||||||
|
if (value != null && rv == null) {
|
||||||
|
Log log = I2PAppContext.getGlobalContext().logManager().getLog(XSSRequestWrapper.class);
|
||||||
|
log.logAlways(Log.WARN, "URL \"" + getServletPath() + "\" Stripped header \"" + name + "\" : \"" + value + '"');
|
||||||
|
}
|
||||||
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String stripXSS(String value, Pattern whitelistPattern) {
|
private String stripXSS(String value, Pattern whitelistPattern) {
|
||||||
|
@ -18,7 +18,7 @@ public class RouterVersion {
|
|||||||
/** deprecated */
|
/** deprecated */
|
||||||
public final static String ID = "Monotone";
|
public final static String ID = "Monotone";
|
||||||
public final static String VERSION = CoreVersion.VERSION;
|
public final static String VERSION = CoreVersion.VERSION;
|
||||||
public final static long BUILD = 21;
|
public final static long BUILD = 22;
|
||||||
|
|
||||||
/** for example "-test" */
|
/** for example "-test" */
|
||||||
public final static String EXTRA = "-rc";
|
public final static String EXTRA = "-rc";
|
||||||
|
Reference in New Issue
Block a user