文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

jspxcms中怎样使用jsp文件

2023-06-26 07:14

关注

这篇文章给大家介绍jspxcms中怎样使用jsp文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

系统中默认禁止jsp的访问。允许jsp访问容易导致一些漏洞,最为常见的攻击方式是通过上传jsp文件获取webshell。

在com.jspxcms.core.ShiroConfig中定义了对jsp jspx后缀的过滤。

    @Bean    public FilterRegistrationBean jspDispatcherFilterRegistrationBean() {        FilterRegistrationBean filterRegistration = new FilterRegistrationBean();        filterRegistration.setFilter(new JspDispatcherFilter());        filterRegistration.setEnabled(true);        filterRegistration.addInitParameter("prefix", "/jsp");        filterRegistration.addUrlPatterns("*.jsp");        filterRegistration.addUrlPatterns("*.jspx");        filterRegistration.setDispatcherTypes(DispatcherType.REQUEST);        return filterRegistration;    }

其中com.jspxcms.common.web.JspDispatcherFilter就是过滤器。

        private boolean allowed = false;        private String prefix = "/jsp";    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {        if (!allowed) {            ((HttpServletResponse) response).sendError(HttpServletResponse.SC_FORBIDDEN, "JSP Access Denied");            return;        }        HttpServletRequest req = (HttpServletRequest) request;        String uri = req.getRequestURI();        String ctx = req.getContextPath();        if (StringUtils.isNotBlank(ctx)) {            uri = uri.substring(ctx.length());        }        request.getRequestDispatcher(prefix + uri).forward(request, response);    }    public void init(FilterConfig filterConfig) throws ServletException {        String allowed = filterConfig.getInitParameter("allowed");        if ("true".equals(allowed)) {            this.allowed = true;        }        String prefix = filterConfig.getInitParameter("prefix");        if (StringUtils.isNotBlank(prefix)) {            this.prefix = prefix;        }    }

在这个过滤器中默认不允许任何jsp的直接访问。但对于某些一定需要使用jsp的情况,预留了一个相对安全的访问jsp的方法。就是所有的jsp请求,都转发到/jsp目录下,这防止了攻击者将jsp文件上传到uploads等目录导致的攻击。因为只有上传到/jsp目录的jsp文件才能被访问。

可以修改JspDispatcherFilter的private boolean allowed = true;。然后将jsp文件放到/jsp目录中。比如创建/jsp/abc.jsp文件,访问路径是/abc.jsp。

关于jspxcms中怎样使用jsp文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯