2020-06-30 12:50:28 +02:00
|
|
|
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[]
|
2021-06-02 20:44:38 +02:00
|
|
|
|
2021-06-03 09:05:38 +02:00
|
|
|
ifdef::env-github,rspecator-view[]
|
2021-06-08 15:52:13 +02:00
|
|
|
'''
|
2021-06-02 20:44:38 +02:00
|
|
|
== Comments And Links
|
|
|
|
(visible only on this page)
|
|
|
|
|
|
|
|
include::comments-and-links.adoc[]
|
2021-06-03 09:05:38 +02:00
|
|
|
endif::env-github,rspecator-view[]
|