原创文章 。
前提条件是:你的 Java Web 应用没有在 Jsp 中直接使用任何 Java 代码,否则会对应用本身造成影响。
方法:
在 web.xml 文件中加下以下配置:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jspx</url-pattern>
<url-pattern>*.jsp</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
</jsp-config>
配置生效后,将不允许 Jsp/Jspx 文件中包含任何 scripting,包括:
-
<%%> 与 <jsp:scriptlet></jsp:scriptlet>
-
<%!%> 与 <jsp:declaration></jsp:declaration>
-
<%=%> 与 <jsp:expression></jsp:expression>
包括这些的 Jsp/Jspx 文件在编译的时候将产生编译错误。目前能看见的 java 的 webshell 全都离不开这几种语法,所以应该可以说是能够禁止所有目前已知的 java webshell。
参考资料:
http://docs.oracle.com/javaee/5/tutorial/doc/bnaoq.html
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论