跨站点脚本(xss)_跨站点脚本(XSS)和预防

跨站点脚本(xss)

如OWASP网站(https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))所述,跨站点脚本(XSS)攻击的变种几乎是无限的。 在这里,我建议使用基于Servlet筛选器的解决方案来清理HTTP请求。
攻击
让我们看看XSS攻击如何表现出来。 附件是一个过于简化的portlet,它显示了一个场景,该场景在论坛等基于社交和协作的系统中非常常见。 参见下面的伪序列图。



测试
在这里,1.有一个可用的表单,用户可以在其中输入带有提交按钮和名为“ mytext”的文本框的评论。 用户A呈现此表单。 2.用户A在输入文本框中输入一个Java脚本并提交表单(这是邪恶输入您的应用程序的步骤)。 只是为了让您看到问题所在; 假设用户输入的脚本将应用程序存储的cookie发送到攻击者的站点。 3.用户B登录到系统,他想查看用户A提供的注释。因此,他转到相应页面,系统在其中呈现A提供的“ mytext”的值。4.浏览器呈现“ mytext”的值,即一个Java脚本,它获取为用户B存储的当前站点的所有cookie,并将其发送到Attackers系统。
预防措施(总比治愈更好),我们将看到清除HTTP参数如何帮助阻止这种攻击。 为了使这次攻击成功,当B提供A的评论时,将向浏览器发送什么样的响应? 就像是 -
<div>A's Comments</div>
<div>
<script>
<!--
This script will get all cookies and will send them to attacker's site.
-->
</script>
</div>
如您所见,这种攻击之所以可能是因为,对于浏览器来说,HTML文档是标记和可执行代码的混合体。 混合可执行代码和标记的能力是攻击者可以利用的致命组合。 使用Servlet过滤器,我们可以清除所有输入参数并删除所有可以表示浏览器可执行指令的特殊字符。 这样,没有邪恶进入系统。 这是执行此操作的非常简单的Servlet过滤器。 使用HttpServletRequest上的包装器,并且转义后重写方法以返回请求参数值。 为了逃避,我建议使用Apache Commons项目的StringEscapeUtils,而不要进行一些自定义编码。
另一种方法是让用户输入他们想要的任何东西,但在渲染时将<,>,&,',“转换为其相应的字符实体代码。 通常,这可以通过使用JSTL来完成–
<div>A's comments</div>
<div>
<c:out value="${comments}" escapeXml="true" />
</div>
当用户可以彼此共享代码片段时,此方法特别有用。
基于用户与系统之间的交互,可以设计出许多其他巧妙的方式来发起XSS攻击。 但是,绝对控制系统输入将肯定可以再次防御此类攻击。

参考: XSS和预防我们JCG伙伴 Advait特里维迪在CoolCode博客。

翻译自: https://www.javacodegeeks.com/2012/08/cross-site-scripting-xss-and-prevention.html

跨站点脚本(xss)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

countdown软件测试死亡时间真假,countdown

countdown死亡倒计时真的假的?countdown这款软件是一款有电影衍生出来的产品&#xff0c;很多朋友都很好奇这个countdownapp测试死亡时间准不准&#xff0c;那么今天小编就为大家带来详细的介绍&#xff0c;感兴趣的朋友们一起来看看吧!这是一款在电影倒忌时中出现的时钟软件&…

在计算机中描述景物结构形状与外貌,在计算机中通过描述景物的结构、形状与外貌,然后将它绘制成图在屏幕上显示出来,此类图像称为_____。...

并实打印现共享文件和机等共享功能&#xff0c;计中通屏完全地相信平等互通&#xff0c;网工需的则所作模局域式是&#xff0c;网络的各没有台计一个内部主次之分若要算机。算机述景包括条件主要区域规划发展。过描的咨项目询包括(准备建设阶段。结构包括咨询主要工程任务师的。…

background-size属性100% cover contain

backgroun-size: 数字&#xff1a;100px 80px 百分比&#xff1a;100% 100% 相对于父元素的&#xff0c;能占满全屏&#xff0c;但是比例可能会失真 cover&#xff1a;占满全屏&#xff0c;可能一部分显示不出来 contain&#xff1a;有一个占满方向占满&#xff0c;背景图不失真…

展示Java开发人员课程包

60个小时以上的课程&#xff0c;5门所有级别的课程&#xff1a;成为Java编程专家 嘿&#xff0c;怪胎&#xff0c; 本周&#xff0c;在我们的JCG Deals商店中 &#xff0c;我们提供了一个极端的报价 。 我们提供的Java Developer Course Bundle 仅售39美元&#xff0c;而不是…

吃鸡服务器不接受响应,绝地求生:蓝洞优化服务器性能,从此告别掉帧延迟!...

原标题&#xff1a;绝地求生:蓝洞优化服务器性能&#xff0c;从此告别掉帧延迟&#xff01;很多玩家们都非常了解服务器的重要性&#xff0c;服务器响应时间也可以描述为‘网络延迟’。如果服务器的响应时间减少(或者网络延迟减少) 的话&#xff0c;玩家们可以体验到更加顺畅的…

fifa15服务器位置,《FIFA 15》全系统教程图文攻略

《FIFA 15》全系统教程图文攻略2014-09-23 11:04:14来源&#xff1a;3DM论坛编辑&#xff1a;评论(0)《FIFA 15》为EA旗下足球模拟游戏&#xff0c;游戏使用了《UFC》所使用的EA的Ignite引擎&#xff0c;球员的全身细节、动作以及物理破坏效果都相当到位&#xff0c;将给带给玩…

主机做服务器共享文件,主机做文件共享服务器

主机做文件共享服务器 内容精选换一换用户要使用CSG&#xff0c;首先要注册一个华为云帐号&#xff0c;才有访问华为云资源的权限。目前CSG服务处于公测阶段&#xff0c;需要申请公测并通过审核才能使用&#xff0c;商用后自动开通。此外为确保用户能正确快速使用CSG服务&#…

i7怎么老是显示无服务器,i7处理器真有这么差?网友:懂电脑的人都不买!

大家都知道i7处理器的性能非常强劲&#xff0c;但是很多人买电脑时却选择i5或者AMD的&#xff0c;这是为什么&#xff1f;仅仅是价格原因么&#xff1f;可是为什么即使是预算足够&#xff0c;那些懂电脑的人也不会去选择I7处理器&#xff0c;难道名声在外的i7处理器真有这么差&…

JQuery入门

jQuery基础语法 $(selector).action() 查找标签 选择器 id选择器&#xff1a; $("#id") 标签选择器&#xff1a; $("tagName") class选择器&#xff1a; $(".className") 配合使用&#xff1a; $("div.c1") // 找到有c1 class类的div…

Java应用程序的令牌认证

建筑物身份管理&#xff0c;包括身份验证和授权&#xff1f; 尝试Stormpath&#xff01; 我们的REST API和强大的Java SDK支持可以消除您的安全风险&#xff0c;并且可以在几分钟内实现。 注册 &#xff0c;再也不会建立auth了&#xff01; 2016年5月12日更新&#xff1a;构建…

mac 远程ftp服务器文件共享,mac 远程ftp服务器文件

mac 远程ftp服务器文件 内容精选换一换云堡垒机配置了FTP/SFTP远程备份&#xff0c;报请检查服务器密码或网络连接情况错误&#xff0c;不能启动远程备份。选择备份具体某一天日志&#xff0c;提示备份正在执行&#xff0c;但远程服务器未接收到该备份文件。原因一&#xff1a;…

将Java EE Monolith雕刻成微服务

在介绍了为什么微服务应该由事件驱动的简介博客之后&#xff0c;我想采取一些其他步骤&#xff0c;并在有关博客的同时准备我即将进行的一系列演讲&#xff08;请参阅jBCNconf和Red Hat Summit&#xff0c;旧金山 &#xff09;。 在Twitter christianposta上关注我&#xff0c;…

【终结版】C#常用函数和方法集汇总

C#里面的常用的函数和方法非常重要&#xff0c;然而做题的时候会经常忘记这些封装好的方法&#xff0c;所以我总结一下 C#常用函数和方法集。 【1】C#操作字符串的常用使用方法 在 C# 中&#xff0c;您可以使用字符数组来表示字符串&#xff0c;但是&#xff0c;更常见的做法是…

glassfish_重写到边缘–充分利用它! 在GlassFish上!

glassfish现代应用程序开发的一个重要主题是重写。 自从Java Server Faces引入和Java EE 6中新的轻量级编程模型以来&#xff0c;您一直在努力使用漂亮&#xff0c;简单&#xff0c;可添加书签的URL。 PrettyFaces已有一段时间了&#xff0c;即使我可以说服它在3.3.3版本中被称…

BZOJ 4557 JLOI2016 侦查守卫 树形dp

题目链接&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id4557 题意概述&#xff1a; 给出一棵树&#xff0c;每个点付出代价w[i]可以控制距离和它不超过d的点&#xff0c;现在给出一些点&#xff0c;问控制这些点的最小代价是多少。 分析: 观察一下数据范围发现…

Java6上开发WebService

Java6上开发WebService 2010-01-23 16:19:00 标签&#xff1a;Java6 WebService 休闲 职场 版权声明&#xff1a;原创作品&#xff0c;如需转载&#xff0c;请与作者联系。否则将追究法律责任。 近日朋友问起Java开发WebService的问题&#xff0c;于是为其写了一份简单说明&…

bzoj 1124 [POI2008]枪战Maf 贪心

[POI2008]枪战Maf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 741 Solved: 295[Submit][Status][Discuss]Description 有n个人&#xff0c;每个人手里有一把手枪。一开始所有人都选定一个人瞄准&#xff08;有可能瞄准自己&#xff09;。然后他们按某个顺序开枪&#x…

20165234 《Java程序设计》第五周学习总结

第五周学习总结 教材学习内容总结 第七章 内部类与异常类 内部类内部类&#xff1a;在一个类中定义另一个类。 外嵌类&#xff1a;包含内部类的类&#xff0c;称为内部类的外嵌类。 内部类的类体中不能声明类变量和类方法。外嵌类的类体中可以用内部类声明对象&#xff0c;作为…

美国华尔街拥抱区块链是最大的威胁

Overstock的首席执行官帕特里克伯恩宣布证券交易委员会已批准其计划在区块链上发行股票&#xff0c;该区块链是推动比特币数字货币的巨大在线分类账。 这是一个重要的时刻。至少在理论上&#xff0c;区块链可以更有效&#xff0c;准确和公开地跟踪股票&#xff0c;债券和其他金…

java枚举和枚举类_Java枚举:您拥有优雅,优雅和力量,这就是我所爱!

java枚举和枚举类当Java 8即将面世时&#xff0c;您确定您对Java 5中引入的枚举很熟悉吗&#xff1f; Java枚举仍然被低估了&#xff0c;很可惜&#xff0c;因为它们比您想象的要有用&#xff0c;它们不仅仅用于通常的枚举常量&#xff01; Java枚举是多态的 Java枚举是可以包…