系统渗透漏洞の未授权访问

本文介绍了一种通过增加过滤器来实现页面安全登录的方法。在用户登录成功后将用户信息保存在session中,过滤器检查session中是否存在用户信息,以此来确保只有已登录用户才能访问页面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:

    我们做的页面是嵌套在营销系统中,所以没有登录界面,造成了直接访问 ip:port/地址可以进入,这样造成了安全隐患

思路;

    想到了加上过滤器,在用户登录成功之后,才授权登录访问页面(当用户登录成功后,将用户信息存在session中,过滤器判断当session中有用户信息才可放行)

添加过程:

    1.首先在web.xml中添加过滤器配置


其中url-pattern 为限制的范围,根据实际情况填写即可

    2.将用户信息存到session中

        找到用户登录才会跳转的界面,将session中的数据获取到,并传入此系统tomcat的session中

<form action="${pageContext.request.contextPath }/login/loginIn.do" method="post">
<input type="hidden" name="loginNo" value="${param.loginNo}" />
<input type="hidden" name="loginName" value="${param.loginName}" />
<input type="hidden" name="regionCode" value="${param.regionCode}" />
<input type="hidden" name="userId" value="${param.userId}" />
<input type="hidden" name="staffId" value="${param.staffId}" />
<input type="hidden" name="forwordUrl" value="${param.forwordUrl}" />
<input type="hidden" name="param" value="${param.param}" />

</form>

 @RequestMapping("/loginIn.do")
    public String loginIn(HttpServletRequest request, HttpSession session, ModelAndView mdv)
        throws UnsupportedEncodingException {
    String forwordUrl = request.getParameter("forwordUrl") != null ? request.getParameter("forwordUrl") : "ahTelecom/login/error";
        try {
            // 工号信息
            session.setAttribute("loginNo", request.getParameter("loginNo") != null ? request.getParameter("loginNo") : "sys");
            session.setAttribute("loginName", request.getParameter("loginName") != null ? request.getParameter("loginName") : "sys");
            session.setAttribute("regionCode", request.getParameter("regionCode") != null ? request.getParameter("regionCode") : "0");
            session.setAttribute("userId", request.getParameter("userId") != null ? request.getParameter("userId") : "9999");
            session.setAttribute("staffId", request.getParameter("staffId") != null ? request.getParameter("staffId") : "9999");
            
            // 生成token
            String token = randomGUID.toString();
            // 将token放入session
            session.setAttribute("token", token);
            return forwordUrl;
        }catch (Exception e) {
            return "ahTelecom/login/error";
        }

    }

3.在过滤器中配置

     @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) res;
        HttpSession session = request.getSession();
       // String loginNo = request.getParameter("loginNo");
        String loginNo = (String) session.getAttribute("loginNo");
        String requestURI = request.getRequestURI();
        System.out.println("requestURI="+requestURI);
        System.out.println("loginNo="+loginNo);
        if(loginNo!=null && !"".equals(loginNo)){
        chain.doFilter(request, response);
        return;
        }
        //chain.doFilter(request, response);

    }

这样就完成了对登录的限制


### CVE-2024 漏洞复现中的未授权访问问题及其解决方案 针对CVE-2024系列漏洞,特别是涉及未授权访问的问题,以下是详细的分析和可能的解决方案。 #### 1. 漏洞概述 CVE-2024系列漏洞涵盖了多个安全问题,其中包括XHCI USB控制器中的释放后使用漏洞(CVE-2024-22252),以及SQL注入漏洞(CVE-2024-2620、CVE-2024-2621、CVE-2024-2622)。这些漏洞可能导致未经授权的用户获取敏感数据或执行恶意操作[^1]。 #### 2. 未授权访问的风险 未授权访问是指攻击者能够在未经适当身份验证的情况下访问系统资源。对于上述提到的漏洞,如果存在未授权访问风险,则意味着攻击者可以通过特定路径绕过系统的认证机制,从而获得对受保护资源的控制权。这种行为不仅会泄露重要信息,还可能会被用来进一步渗透整个网络环境。 #### 3. 解决方案建议 ##### a. 更新补丁程序 厂商通常会在发现此类严重缺陷之后尽快发布相应的修复版本。因此,最直接有效的办法就是及时安装官方提供的最新更新包来修补已知的安全隐患。例如,在VMware案例中应立即应用由供应商发布的安全公告里所提及的所有相关补丁文件。 ##### b. 配置强化措施 除了依赖于第三方提供的修正之外,企业内部也可以采取一些额外的安全策略以增强防护能力: - **最小权限原则**:确保应用程序和服务仅拥有完成其功能所需的最低限度的权利; - **日志监控与审计**:启用详尽的日志记录并定期审查异常活动模式,以便快速响应潜在威胁; ```bash # 安装最新的安全补丁 sudo apt-get update && sudo apt-get upgrade -y ``` ##### c. 使用Web应用防火墙(WAF) 部署专业的WAF可以有效拦截大部分基于HTTP/HTTPS协议发起的应用层攻击尝试,包括但不限于SQL注入、跨站脚本(XSS)等常见手段。通过配置规则集过滤掉可疑请求,减少因编程错误而导致的信息泄漏可能性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孙泽0813

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值