32 lines
817 B
Plaintext
32 lines
817 B
Plaintext
![]() |
include::../description.adoc[]
|
||
|
|
||
|
== Noncompliant Code Example
|
||
|
|
||
|
----
|
||
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
|
||
|
String input = req.getParameter("input");
|
||
|
|
||
|
ScriptEngineManager manager = new ScriptEngineManager();
|
||
|
ScriptEngine engine = manager.getEngineByName("JavaScript");
|
||
|
engine.eval(input); // Noncompliant
|
||
|
}
|
||
|
----
|
||
|
|
||
|
== Compliant Solution
|
||
|
|
||
|
----
|
||
|
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
|
||
|
String input = req.getParameter("input");
|
||
|
|
||
|
// Match the input against a whitelist
|
||
|
if (!whiteList.contains(input))
|
||
|
throw new IOException();
|
||
|
|
||
|
ScriptEngineManager manager = new ScriptEngineManager();
|
||
|
ScriptEngine engine = manager.getEngineByName("JavaScript");
|
||
|
engine.eval(input);
|
||
|
}
|
||
|
----
|
||
|
|
||
|
include::../see.adoc[]
|