91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jspxcms中怎樣使用jsp文件

發布時間:2022-01-19 15:43:35 來源:億速云 閱讀:150 作者:柒染 欄目:開發技術

這篇文章給大家介紹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就是過濾器。

    /**
     * 是否允許訪問 JSP 或 JSPX 文件。默認 false 。
     */
    private boolean allowed = false;
    /**
     * 請求轉發地址前綴。只允許特定目錄的 jsp(jspx) 允許被訪問。默認為 /jsp 。比如訪問 /abc.jsp 通過請求轉發實際上訪問的文件為 /jsp/abc.jsp 。
     */
    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文件就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

介休市| 金昌市| 太湖县| 独山县| 盘锦市| 崇明县| 托里县| 湘潭市| 普陀区| 界首市| 襄汾县| 米易县| 南充市| 云南省| 汉川市| 临清市| 肇源县| 左云县| 淳化县| 新宁县| 洪洞县| 攀枝花市| 万源市| 泸水县| 淳化县| 抚顺县| 伽师县| 通化市| 曲靖市| 陵川县| 集贤县| 渭源县| 布拖县| 珲春市| 澄城县| 鄄城县| 土默特右旗| 台中市| 南康市| 百色市| 沽源县|