51 lines
1.1 KiB
Plaintext
51 lines
1.1 KiB
Plaintext
include::../description.adoc[]
|
|
|
|
== Noncompliant Code Example
|
|
|
|
[source,java]
|
|
----
|
|
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
|
|
|
|
[source,java]
|
|
----
|
|
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[]
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
include::../highlighting.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|