zoukankan      html  css  js  c++  java
  • Struts1.x 跨站脚本(XSS)漏洞的解决

    一. 演示XSS
       当访问一个不存在的网址时,例如[url]http://localhost:8080/demo/noAction.do[/url],那么Struts处理后都会跳到提示“Invalid path /noAtcion.do was requested”的页面。
       但如果我们访问的网址是[url]http://localhost:8080/demo/<script>alert[/url]('ok')</script>.do,那么按道理,提示页面就会变成“Invalid path /<script>alert('ok')</script>.do was requested”。很明显,这将会执行<script>alert('ok')</script>这脚本,最终显示的内容就会把执行的脚本代码去掉,剩下Invalid path /.do was requested。漏洞就在这里了,如果那脚本是有害的,另有企图的,那么...
    二. 解决方法    尝试输入[url]http://www.baidu.com/<script>alert[/url]('ok')</script>.html,将会提示该页面不存在,而不会像上面的提示那样。    解决方法就在这里:设置专门处理404等error的页面。这是Struts官方网站提供的一种方法之一。    而官方网站的wiki([url]http://wiki.apache.org/struts/StrutsXssVulnerability[/url])还提供其他方法。
       1.升级到Struts 1.2.8版本      Struts 1.2.8版本已经解决了这个XSS漏洞。而之前的版本都受到XSS漏洞的影响。
       2.配置"unknown" Struts Action      如果客户端请求了struts-config.xml中没有定义的资源,Struts会丢出 404 Invalid path 的讯息,您可以撰写匿名的ActionMapping来提供自己的错误讯息:     <action

          name="error"
          path="/unknown"

          unknown="true"       forward="/WEB-INF/pages/error.jsp"/>
       如果RequestProcessor遇到没有定义的Action请求,则会交由匿名的ActionMapping来处理。
       当然别忘了最简单的方法: 设置并指定自定义的404/Not found处理网页。

  • 相关阅读:
    python之面向对象
    Python常用模块(logging&re&时间&random&os&sys&shutil&序列化&configparser&&hashlib)
    Python之模块与包
    2.1 、寻找元素 (重要的选择器和筛选器)
    4、循环语句 和 异常处理
    7、其他知识点
    2、函数 面向对象
    3、数据类型
    1、初识JavaScript
    2、css
  • 原文地址:https://www.cnblogs.com/tbyang/p/3388272.html
Copyright © 2011-2022 走看看