使用JSP作为模板解析引擎 - 安全问题

时间:2014-01-19 11:55:01

标签: java jsp

我对JSP模板解析引擎有疑问。

我目前正在构建的是允许客户在JSP中编写自己的模板(在网页上的文本区域内),然后可以用于电子邮件,登陆页面等。

JSP标签/ scriptlet是否可以用来访问我在HttpRequest中设置的$ {variables}提供的数据以外的数据?

换句话说,让客户端直接访问JSP模板引擎会带来安全风险,如果是这样,我是否可以打开/关闭某些存在安全风险的JSP标记?

1 个答案:

答案 0 :(得分:1)

JSP 紧密绑定到HTTP请求生命周期。 JSP直接编译为实现HttpServlet的Java类。使用scriptlet,您将在系统中引入非常明显的安全漏洞(JSP作者可以在您的服务器上编写和执行任意Java代码)。

TL; DR JSP对于您的用例来说是非常糟糕的选择。使用不完全基于HTTP请求的模板引擎(String Template,Freemarker,...)。