mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-09 19:45:13 +02:00
new capacity bits (#67)
This commit is contained in:
parent
afaffc0df6
commit
7d0e7320e2
261 changed files with 10591 additions and 231 deletions
23
tests/fixtures/xpath_injection/java/SafeXPathQuery.java
vendored
Normal file
23
tests/fixtures/xpath_injection/java/SafeXPathQuery.java
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
// Safe: user-supplied substring routed through the project-local
|
||||
// `escapeXpath` helper before being concatenated into the XPath expression.
|
||||
// The sanitizer clears the XPATH_INJECTION cap so the sink does not fire.
|
||||
import javax.xml.xpath.XPath;
|
||||
import javax.xml.xpath.XPathConstants;
|
||||
import javax.xml.xpath.XPathFactory;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NodeList;
|
||||
|
||||
public class SafeXPathQuery {
|
||||
public static String escapeXpath(String raw) {
|
||||
return raw.replace("'", "'");
|
||||
}
|
||||
|
||||
public NodeList lookup(HttpServletRequest req, Document doc) throws Exception {
|
||||
String user = req.getParameter("user");
|
||||
String safe = escapeXpath(user);
|
||||
String expr = "//user[name='" + safe + "']";
|
||||
XPath xpath = XPathFactory.newInstance().newXPath();
|
||||
return (NodeList) xpath.evaluate(expr, doc, XPathConstants.NODESET);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue