java解决XSS攻击常用方法总结

72 篇文章 710 订阅 ¥19.90 ¥99.00

前言

在项目验收阶段,通常会对待验收项目做一些安全漏洞的测试,比如接口攻击,并发测试,XSS注入,SQL恶意注入测试,安全越权等操作,这时,就是考验项目的安全方面是否做的足够健壮的时候,本篇对XSS脚本攻击在实际WEB项目中的处理办法,提供2种可实行的方法

xss攻击

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容

简单说就是说,通过在输入框输入一些js代码,如在账号密码输入框中输入

<video src=1 onerror=alert(/xss/)/>

或者

<script>alert("@@") </script>

这样点击提交的时候就会触发alert弹窗,分别弹出 xss 和 @@ 的内容,这里只是做个简单的演示,弹了个窗口,还能存储病毒下载地址到服务端,进入的时候自动下载,或者修改你的cookie啥的,这里感兴趣可以百度查查xss攻击

解决方式一:强制修改html敏感标签内容

这是一种相对容易理解的方式,解决思路就

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
Java中可以通过以下几种方式来防御XSS攻击: 1. 输入验证和过滤:对用户输入的数据进行验证和过滤,确保只接受合法的输入。可以使用正则表达式或者特定的输入验证库来过滤用户输入,例如Apache Commons Validator库。 2. 输出编码:在将用户输入的数据输出到网页上时,使用合适的编码方式对数据进行转义,以防止恶意代码的执行。常用的编码方式包括HTML实体编码、URL编码和JavaScript编码。 3. 使用安全的HTML标签和属性:限制用户输入中可以使用的HTML标签和属性,只允许使用安全的标签和属性,可以使用HTML过滤器库来实现。 4. 使用安全的模板引擎:如果在项目中使用了模板引擎,确保选择一个安全的模板引擎,该引擎能够自动对输出进行编码,以防止XSS攻击。 5. 使用HTTP头部设置:在HTTP响应中设置适当的Content-Security-Policy(CSP)头部,限制页面中可以加载的资源和执行的脚本,以减少XSS攻击的风险。 6. 使用XSS过滤器:可以自定义一个XSS过滤器,在过滤器中对用户输入进行检查和处理,过滤掉恶意代码。可以参考引用中的示例代码。 ```java public class XssFilter implements Filter { @Override public void init(FilterConfig filterConfig) { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { // 使用包装器 XssFilterWrapper 对请求参数进行过滤 XssFilterWrapper xssFilterWrapper = new XssFilterWrapper((HttpServletRequest) servletRequest); filterChain.doFilter(xssFilterWrapper, servletResponse); } @Override public void destroy() { } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小码农叔叔

谢谢鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值