我对JSP模板解析引擎有疑问。
我目前正在构建的是允许客户在JSP中编写自己的模板(在网页上的文本区域内),然后可以用于电子邮件,登陆页面等。
JSP标签/ scriptlet是否可以用来访问我在HttpRequest中设置的$ {variables}提供的数据以外的数据?
换句话说,让客户端直接访问JSP模板引擎会带来安全风险,如果是这样,我是否可以打开/关闭某些存在安全风险的JSP标记?
答案 0 :(得分:1)
JSP 紧密绑定到HTTP请求生命周期。 JSP直接编译为实现HttpServlet
的Java类。使用scriptlet,您将在系统中引入非常明显的安全漏洞(JSP作者可以在您的服务器上编写和执行任意Java代码)。
TL; DR JSP对于您的用例来说是非常糟糕的选择。使用不完全基于HTTP请求的模板引擎(String Template,Freemarker,...)。