【安全】 Java 过滤器 解决存储型xss攻击问题

这篇具有很好参考价值的文章主要介绍了【安全】 Java 过滤器 解决存储型xss攻击问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

XSS简介

跨站脚本( cross site script )为了避免与样式css(Cascading Style Sheets层叠样式表)混淆,所以简称为XSS。

XSS是一种经常出现在web应用中的计算机安全漏洞 ,也是web中最主流的攻击方式。

什么是XSS?

XSS是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码。

从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。

分类

反射型

反射型xss攻击( Reflected XSS)又称为非持久性跨站点脚本攻击,它是最常见的类型的XSS。漏洞产生的原因是攻

击者注入的数据反映在响应中。一个典型的非持久性XSS包含一个带XSS攻击向量的链接( 即每次攻击需要用户的点击)。

存储型

存储型XSS (Stored XSS)又称为持久型跨站点脚本,它一般发生在XSS攻击向量 (一般指XSS攻击代码)存储在网站数据库,当一个页面被用户打开的时候执行。每当用户打开浏览器,脚本执行。持久的XSS相比非持久性XSS攻击危害性更大,因为每当用户打开页面,查看内容时脚本将自动执行。谷歌的orkut 曾经就遭受到XSS。

两种类型实现的结果完全相同,不同的是前者需要点击,后者存在于网页的数据库内

XSS(cross site script)跨站脚本攻击攻击场景

攻击者可以通过构造URL注入JavaScript、VBScript、ActiveX、HTML或者Flash的手段,利用跨站脚本漏洞欺骗用户,收集Cookie等相关数据并冒充其他用户。通过精心构造的恶意代码,可以让访问者访问非法网站或下载恶意木马,如果再结合其他攻击手段(如社会工程学、提权等),甚至可以获取系统的管理权限。

举例说明
例如:在项目看板里待材料初审存储下面代码,点击A项目会弹出框

Payload: <iframe οnlοad=alert("xss");></iframe>

过滤器java,Java程序员进阶之路,安全,java,xss

例如 全部阶段结果标准-存储下面代码,点击20200927测试-2

Payload: <textarea οnfοcus=alert("xss"); autofocus>

解决方案

找到项目已有的filter过滤器,在过滤HttpServletRequest参数时,进行参数的处理,使用转义,将 < 转义为 & lt , > 转义为 & gt文章来源地址https://www.toymoban.com/news/detail-715415.html

public PaasHttpRequestWrapper(HttpServletRequest request) {
        super(request);
        StringBuilder stringBuilder = new StringBuilder();
        InputStream inputStream = null;
        try {
            inputStream = request.getInputStream();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        if (inputStream != null) {
            try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream))) {
                char[] charBuffer = new char[CHAR_BUFFER_LENGTH];
                int bytesRead;
                while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
                    stringBuilder.append(charBuffer, BUFFER_START_POSITION, bytesRead);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            stringBuilder.append("");
        }
        body = stringBuilder.toString();
        // 解决xss攻击问题
        if (body.contains("<")) {
            body = body.replace("<", "&lt");
        }
        if (body.contains(">")) {
            body = body.replace(">", "&gt");
        }
        initParameterMap();
    }

到了这里,关于【安全】 Java 过滤器 解决存储型xss攻击问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Java 过滤器 @WebFilter 详解

    Java 过滤器 @WebFilter 详解

    @WebFilter 注解是JavaEE中的一种注解,用于标识一个类为过滤器(Filter)。过滤器用于对请求进行过滤和处理,可以在请求到达目标资源之前或之后执行一些操作。 使用**@WebFilter**注解可以将一个类声明为过滤器,并指定过滤器的名称、URL模式、Servlet名称等。 简化配置 :不再需要

    2024年02月03日
    浏览(8)
  • Java-Web过滤器

    Java-Web过滤器

    1.为什么需要过滤器? 2.基本介绍 3.过滤器的基本原理 1.文件目录 2.环境配置 创建maven项目,导入依赖 3.代码实现 1.login.jsp 2.LoginCheck.java 3.ManagerFilter.java编写过滤规则 4.配置web.xml告诉tomcat 5.admin.jsp 1.服务器启动 读取web.xml 根据全类名反射创建过滤器的实例,将其放在name - 实例

    2024年04月17日
    浏览(8)
  • 【Java 进阶篇】保护你的应用:Java 过滤器实现敏感词汇过滤

    【Java 进阶篇】保护你的应用:Java 过滤器实现敏感词汇过滤

    在开发 Web 应用程序时,安全性是至关重要的一环。保护用户免受恶意内容的侵害是开发者义不容辞的责任之一。在这篇博客中,我们将深入研究如何使用 Java 过滤器来过滤敏感词汇,确保用户输入的内容不包含不良信息。我们将采用简单而实用的方法,让即使是初学者也能

    2024年02月03日
    浏览(10)
  • Java设计模式(八)过滤器模式

    一、概要 过滤器模式是一种结构型设计模式,它允许通过一系列条件来筛选对象,并提供一种灵活的方式来组合和操作这些条件。过滤器模式将过滤条件封装成独立的过滤器类,然后使用这些过滤器来过滤对象集合,以满足特定的条件。 二、代码 以下是一个示例代码,说明

    2024年02月03日
    浏览(5)
  • JAVA中的拦截器、过滤器

    JAVA中的拦截器、过滤器

    相关解释:拦截器依赖于页面有访问controller的操作,且属于SpringMVC体系的动态拦截调用机制,是java中AOP思想的运用。 来看看源码作者的注释: 其中倒数第二段话,描述其类似于过滤器,但其特点只允许使用自定义预处理,不能处理程序本身。此处可体现AOP思想。 过滤器是

    2024年02月13日
    浏览(5)
  • 布隆过滤器及其在Java中的实际应用

    布隆过滤器及其在Java中的实际应用

    布隆过滤器一直是面试中的重点,本篇文章将深入探讨Java中的布隆过滤器的底层思想,包括它的工作原理、优缺点等。同时,我们将结合一个小实际案例,来给大家展示布隆过滤器在解决实际问题中的应用。 在数据处理领域,我们经常需要判断一个元素是否在一个集合中。

    2024年02月05日
    浏览(7)
  • Merkle Tree、Merkle Proof、SPV安全性分析、Bloom过滤器

    Merkle Tree、Merkle Proof、SPV安全性分析、Bloom过滤器

    区块链基础参考前面翻译的白皮书 Merkle Tree的最大特点是:可以以一个很简短的方法来证明一棵树中存在某一个元素。即 Simplified Payment Verification,SPV 【问题】tx10、proof均为外部提供的信息,roothash又是公开信息,是否可以构造恶意数据对(tx,proof)骗过轻节点的验证,如果不能

    2024年02月09日
    浏览(14)
  • 构建安全高效的传感器网络:探索双属性索引与矩阵布隆过滤器

    在当今的信息时代,传感器网络在数据收集和处理中扮演着至关重要的角色。随着技术的进步,管理这些网络中的敏感数据变得尤为重要。本文旨在探索如何在传感器网络中有效地管理敏感数据,同时保障数据的安全和效率。 安全双属性索引是一个先进的技术,旨在高效管理

    2024年02月03日
    浏览(9)
  • JAVA开发(通过网关gateway过滤器进行返回结果加密)

    JAVA开发(通过网关gateway过滤器进行返回结果加密)

    在对C的网站或者APP后端接口中,参数的传输往往需要加密传输。这时我们 可以通过springcloud的网关过滤器进行统一的控制。 网关过滤器的执行顺序: 请求进入网关会碰到三类过滤器:当前路由过滤器、DefaultFilter、GlobalFilter。 请求路由后,会将当前路由过滤器和DefaultFilter、

    2023年04月17日
    浏览(5)
  • Java设计模式之过滤器模式(Filter Pattern)

    过滤器模式(Filter Pattern)是一种常用的设计模式,它用于通过一系列条件来过滤对象集合,并将满足条件的对象保留下来。该模式可以帮助我们在不修改原始对象集合的情况下,根据特定的条件对集合进行筛选和处理。 在过滤器模式中,通常有三个核心角色: 过滤器接口(

    2024年02月07日
    浏览(8)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包