Web 项目中常见的漏洞

这篇具有很好参考价值的文章主要介绍了Web 项目中常见的漏洞。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

检测到目标X-Content-Type-Option响应头缺失

X-Content-Type-Options HTTP消息头相当于一个提示标志,被服务器用来提示客户端一定要遵循在Content-Type首部中对MIME类型的设定,而不能对其进行修改。这就禁用了客户端的MIME类型嗅探行为,换句话说,也就是意味着网站管理员确定自己的设置没有问题

解决方案

此类问题事实上是要阻止浏览器对MIME的嗅探行为。当MIME的类型缺失浏览器会通过查看资源对MIME进行嗅探,而这个操作可能涉及安全问题。所以我们应该尽量的设置MIME类型,然后禁用MIME嗅探的行为。

  1. 设置response响应报文头
  2. 添加X-Content-Type-Options字段,并设值为nosniff
@Override  
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {  
    HttpServletRequest request = (HttpServletRequest) servletRequest;  
    HttpServletResponse response = (HttpServletResponse) servletResponse;  
    response.addHeader("X-Content-Type-Options","nosniff");  
    filterChain.doFilter(request,response);  
}

检测到目标X-XSS-Protection响应头缺失

HTTP X-XSS-Protection响应头是Internet Explorer,Chrome和Safari的一个特性,当检测到跨站脚本攻击(XSS)时,浏览器将停止加载页面

解决方案

XSS的攻击防御其实涉及很多方面的修改,这里我们不详述。

  1. 我们可以先通过启用XSS过滤来做基本的防御。
    • 配置说明
      • 0:禁用XSS
      • 1:启动XSS;
      • mode = block:检测到攻击,浏览器将阻止页面的呈现,而不是过滤页面中的XSS内容;
      • report=<reporting-url>:仅限chrome,检测到攻击后,将报告行为至指定的服务。
  2. 设置response响应报文头
  3. 添加X-XSS-Protection字段,并设为1;mode=block
@Override  
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {  
    HttpServletRequest request = (HttpServletRequest) servletRequest;  
    HttpServletResponse response = (HttpServletResponse) servletResponse;    
    response.addHeader("X-XSS-Protection","1;mode=block");
    filterChain.doFilter(request,response);  
}

检测到目标Content-Security-Policy响应头

HTTP响应头Content-Security-Policy允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除少数例外情况,设置的政策主要涉及指定服务器的源和脚本结束点

@Override  
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {  
    HttpServletRequest request = (HttpServletRequest) servletRequest;  
    HttpServletResponse response = (HttpServletResponse) servletResponse;  
    response.addHeader("Content-Security-Policy","default-src 'self");
    filterChain.doFilter(request,response);  
}

检测到目标URL存在HTTP host头攻击漏洞

为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。但是这个header时不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成而已代码的传入

解决方案

对此为WEB项目的host进行管理,通过设置白名单的方式规定可访问的域名。

  1. 设置拦截器,获取报文头的host字段
  2. 配置拦截器的白名单
@Override  
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {  
    HttpServletRequest request = (HttpServletRequest) servletRequest;  
    HttpServletResponse response = (HttpServletResponse) servletResponse;  
    String host = response.getHeader("host");  
    if(!checkBlankList(host)){  
        response.setStatus(HttpStatus.FORBIDDEN.value());  
        return; 
    }
    filterChain.doFilter(request,response);
}  

private boolean checkBlankList(String host){  
    String reg = "localhost|127.0.0.1|0.0.0.0";
    return Pattern.compile(reg).matcher(url).find();  
}

检测到目标URL启用了不安全的HTTP方法

检测到目标WEB服务器配置成允许下列其中一个(或多个)HTTP方法:DELETE,SEARCH,COPY,MOVE,PROPFIND,PROPPATCH,MKCOL,LOCK,UNLOCK。 这些方法表示可能在服务器上使用了WebDAV。由于dav方法允许客户端操纵服务器上的文件,如果没有合理配置dav,有可能允许未授权的用户对其进行利用,修改服务器上的文件。

解决方案

配置所能接收的请求方法,一般配置为POSTGET两个方法就够了,有其他需求的就加上

@Override  
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {  
    HttpServletRequest request = (HttpServletRequest) servletRequest;  
    HttpServletResponse response = (HttpServletResponse) servletResponse;  
    if(!isAllowMethod(request)){  
        response.setStatus(HttpStatus.NOT\_FOUND.value());  
        return; 
    }  
    filterChain.doFilter(request,response);  
}

private boolean isAllowMethod(HttpServletRequest request){  
    boolean isAllow = false;  
    String method = request.getMethod();  
    if(HttpMethod.GET.toString().equals(method)|| HttpMethod.POST.toString().equals(method)){  
        isAllow = true;  
    }  
    return isAllow;  
}

检测到目标主机可能存在缓慢的HTTP拒绝服务攻击

缓慢的HTTP拒绝服务攻击时一种专门针对Web的应用层拒绝服务攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量HTTP请求攻击,直到服务器带宽被打满,造成了拒绝服务。

解决方案

此类问题一般从两个方向解决:

  1. 规定请求的连接并发数
  2. 设置请求超时时间
server.connection-timeout= 5000
server.tomcat.max-connections = 10000

点击劫持:X-Frame-Options未配置

点击劫持是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。文章来源地址https://www.toymoban.com/news/detail-679834.html

  1. 添加X-Frame-Options响应头
    • DENY:不能被嵌入
    • SAMEORIGIN:只能嵌入本站
    • ALLOW-FROM:指定能嵌入的站点
  2. 设置response响应头
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {  
    HttpServletRequest request = (HttpServletRequest) servletRequest;  
    HttpServletResponse response = (HttpServletResponse) servletResponse;  
    //response.addHeader("X-frame-options","DENY");  
    //response.addHeader("X-frame-options","SAMEORIGIN");  
    response.addHeader("X-frame-options","ALLOW-FROM 'http://localhost:9080'");  
    filterChain.doFilter(request,response);  
}

到了这里,关于Web 项目中常见的漏洞的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ChatGPT可能正在存在被多处利用漏洞攻击隐患

    可以通过多种聊天测试发现ChatGPT AI会教会你如何编写代码,包括C++CPythonJAVAGO语言,易语言等多种语言、解题数学英语语文化学物理,甚至大学题目都可以,它还会根据您的回答告诉你具体事项与思路、方法解析 然而一般的问题确实不能提供源代码和具体方法的思路 如果

    2023年04月19日
    浏览(28)
  • ora12545因目标主机或对象不存在,连接失败 最全详解!!!!!!!

    ora12545因目标主机或对象不存在,连接失败 可以从 三个方面查 : 1.查看服务是否开启: 操作如下: 这两个是最基本的,监听配置等是与这个有关,这俩必须开启。 如果没开启就把他们开启,之后重新登陆试试。 如果登陆失败或者已经开启那么考虑第2个: 2.查看 tnsnames.ora

    2024年02月04日
    浏览(31)
  • 【终结】Plsql 监听失败+链接Oracle ORA-12545:因目标主机不存在

       折腾我好久!翻阅千山万水也没有命中问题!今天我要公布于世!如何解决! 起因:服务器那边重启了我运行良好的主机导致上述问题! 感谢各位CSDN默默贡献的大神,是你们促进互联网的发展!虽然没有帮到我在这个问题上! 【特别鸣谢】感谢ReadyGPT(呱呱AI智能助手)

    2024年02月07日
    浏览(39)
  • 检测到目标URL存在暗链

    暗链又叫隐藏链接,指的是正常的链接通过一些方法,如:把链接放入js代码中,使用display:none等等,从而使用户在正常浏览网页的时候无法看到这个链接。暗链是对搜索引擎的一种欺骗,导致搜索引擎的误判,将高权重分配给原本没有价值的网站甚至是钓鱼网站。这样极易

    2024年02月16日
    浏览(38)
  • 目标URL存在http_host头攻击漏洞复现及修复

    漏洞描述 为了方便的获得网站域名,开发人员一般依赖于HTTP Host header。例如,在php里用_SERVER[“HTTP_HOST”]。但是这个header是不可信赖的,如果应用程序没有对host header值进行处理,就有可能造成恶意代码的传入。 危险等级 中危 修复建议 web 应用程序应该使用 SERVER_NAME 而不是

    2024年02月06日
    浏览(44)
  • 检测到目标网站存在Bash Shell历史记录文件

    Bash Shell历史记录文件.bash_history包含了用户在bash shell运行的命令的历史记录.可能包含有与目标机器相关的敏感信息。这些敏感信息可以帮助攻击者针对站点发起进一步的攻击,降低攻击的难度。 如果不需要该文件,建议删除对应的文件。或者更改文件的访问权限。 不做任何

    2024年02月16日
    浏览(45)
  • 主机、web漏洞修复整理

    维护系统项目验收前需要做安全扫描,检测主机、web等安全漏洞,现把发现的漏洞修复整理记录一下 1. ICMP timestamp请求响应漏洞 , 描述: 远程主机会回复ICMP_TIMESTAMP查询并返回它们系统的当前时间。这可能允许攻击者攻击一些基于时间认证的协议。 修复: 在您的防火墙上过

    2024年02月11日
    浏览(84)
  • 通过Kali利用永恒之蓝漏洞目标主机shell,并进行部分后渗透操作

    环境说明 机器 ip地址 Kali主机 192.168.231.129 win7 靶机 192.168.231.143 1.使用kali虚拟机作为攻击机,利用nmap扫描获取目标的IP地址及漏洞,将两个机器包括一个攻击机Kali、win7的网络连接模式都是NAT,即在一个网段里面,然后进行扫描网段,查看存活主机,下面是两台机器的ip地址查

    2024年02月08日
    浏览(53)
  • 常见Web十大漏洞,常见Web漏洞

    目录 一、SQL注入漏洞 分为以下五种注入方式: 查找SQL注入漏洞 Union注入  布尔盲注  报错注入 时间盲注 时间型盲注的加速方式 二、任意文件下载 漏洞原理: 产生原因: 利用条件: 漏洞发现: 漏洞利用方法: 漏洞防护: 三、敏感文件 四、文件包含 漏洞利用 PHP中的封装

    2024年02月05日
    浏览(41)
  • 报错:Error,关于运行localhost://8080/一直提示:“源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示。“的可能问题集合。

    查看端口占用问题 查看Tomcat的安装问题及配置问题 查看web.xml是否缺少配置 查看网页内容引用路径问题 考虑是否权限问题 改端口号,比如改成:8888 ↓【找到Tomcat安装目录→conf文件夹→server.xml(记事本打开)→找到Connect port→修改8080】 (1)Tomcat计算机环境配置 【在官网

    2024年02月04日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包