• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链
您的位置:首页 > 网络安全 >安全教程 > 防止xss攻击的有效方法

防止xss攻击的有效方法

作者:佚名 字体:[增加 减小] 来源:互联网

佚名 向大家分享了防止xss攻击的有效方法,其中包含防止xss攻击,如何防止xss攻击,php防止xss攻击,防止xss,如何防止xss等知识点,遇到此问题的同学们可以参考下

最近,有个项目突然接到总部的安全漏洞报告,查看后知道是XSS攻击。

问题描述:

在页面上有个隐藏域:

</div>
  1. <input type = "hidden" id = "action" value = "${action}"/>    
</div> </div>

当前页面提交到Controller时,未对action属性做任何处理,直接又回传到页面上

如果此时action被用户恶意修改为:***"<script>alert(1);</script>"***

此时当页面刷新时将执行alert(1),虽然错误不严重,但是任何安全隐患都应受到重视。

解决思路:

该问题是由于对用户输入数据(隐藏域)未做任何处理,导致非法数据被执行,那么解决该问题的核心思路就是对用户数据做严格处理,对任何页面传递的数据都不应过分信任,处理方法如下:

1.在页面上对action参数做转义处理,${action?html}(前端技术采用freemarker),但是此种方法只能对单个属性有效,如果此时项目处于维护期且有大量此种问题,修复的难度较大且不便于统一维护

2.在服务端对用户数据做转义处理,此时需要创建一个filter,对request进行二次封装,核心代码如下:

</div>
  1. import javax.servlet.http.HttpServletRequest;   
  2. import javax.servlet.http.HttpServletRequestWrapper;   
  3.     
  4. import org.apache.commons.lang3.StringEscapeUtils;   
  5.     
  6. public class XssRequestWrapper extends HttpServletRequestWrapper {   
  7.     
  8.     public XssRequestWrapper(HttpServletRequest request) {   
  9.         super(request);   
  10.     }   
  11.     
  12.     public String getParameter(String name) {   
  13.         String value = super.getParameter(name);   
  14.         if (value == null) {   
  15.             return null;   
  16.         }   
  17.         return StringEscapeUtils.escapeHtml4(value);   
  18.     }   
  19.     
  20.     public String[] getParameterValues(String name) {   
  21.         String[] values = super.getParameterValues(name);   
  22.         if (values == null) {   
  23.             return null;   
  24.         }   
  25.         String[] newValues = new String[values.length];   
  26.         for (int i = 0; i < values.length; i++) {   
  27.             newValues[i] = StringEscapeUtils.escapeHtml4(values[i]);   
  28.         }   
  29.         return newValues;   
  30.     }   
  31. }   
</div> </div>

XssRequestWrapper是对request进行的二次封装,最核心的作用是对request中的参数进行转义处理(需要用到commons-lang3.jar)

定义filter,核心的代码如下:

</div>
  1. @Override  
  2. public void doFilter(ServletRequest request,   
  3.                      ServletResponse response,   
  4.                      FilterChain chain) throws IOException, ServletException {   
  5.     HttpServletRequest req = (HttpServletRequest) request;   
  6.     chain.doFilter(new<

您可能想查找下面的文章:

  • 防止xss攻击的有效方法

相关文章

  • 黑客大战直播网址 黑客大战直播2015
  • 在线DDoS攻击平台是什么 DDoS攻击平台的流量获取方式
  • 剖析DDoS攻击原理
  • DNS工作原理图文解析
  • 如何正确的进行网站入侵渗透测试
  • 快速确定特定端口的使用程序
  • sqlmap用户手册[续篇]
  • 判断数据库web是否分离的技巧
  • 怎么利用硬件防御ROP 详解HA-CFI技术
  • 利用hackRF嗅探GSM网络流量

文章分类

  • 安全教程
  • 安全设置
  • 杀毒防毒
  • 病毒查杀
  • 脚本攻防
  • 入侵防御
  • 工具使用
  • 业界动态
  • Exploit
  • 漏洞分析
  • 加密解密
  • 手机安全
  • 区块链

最近更新的内容

    • 预防黑客DdoS被攻击的技巧(纯文字版)
    • 安全挂黑连接的4种方法
    • 教你让网马原代码隐藏的方法
    • SQL语句导入导出大全
    • 个人主机入侵网络攻击的步骤
    • hzhost6.5 华众虚拟主机管理系统最新SQL漏洞(附漏洞补丁)
    • 木马保护生成
    • 十种获取webshell的方法
    • DNS协议欺骗攻击技术的攻防知识 DNS欺骗攻击和防范方法有哪些
    • linux下mysql 5.x得到root密码后的另外一种利用方式

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有