跨站点脚本(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,一经查实,立即删除!

相关文章

ajax的请求参数详解以及前后台交互详解

function rejectSub(){//从隐藏域中拿到userIDvar userId $("input:hidden[nameuserId]").val();var flag;$.ajax({type : "POST",//请求方式有post&#xff0c;get请求方式&#xff0c;这里是post请求url:${base}/compactedExpert/qcVerificationCompact…

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

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

Spring Boot和Spring数据JPA集成

如今&#xff0c;借助于Spring Boot和spring Data&#xff0c;spring和JPA集成已变得轻而易举。 我要设置一个PostgreSQL服务器 docker pull postgres #run the container docker run --name postgreslocal -e POSTGRES_PASSWORDpostgres -d postgres #get the ip docker ins…

专业软件 —— 硬件评测

1. 硬盘评测 crystaldiskinfo&#xff1a;CrystalDiskInfo – Crystal Dew Worldcrystaldiskmark&#xff1a;硬盘跑分&#xff0c;CrystalDiskMark – Crystal Dew World2. CPU 与 GPU CPU-ZGPU-Z转载于:https://www.cnblogs.com/mtcnn/p/9421010.html

桌面记事本软件测试工资,记事本的一个BUG

我们常用的小工具&#xff0c;系统中附件里的“记事本”工具&#xff0c;有个比较有意思的BUG&#xff0c;让我们按以下步骤来看看。1. 在开始菜单的附件里打开记事本2. 复制引号中的内容&#xff0c;粘贴到记事本里“AAAA BBB CCC DDDDD”3. 把它保存到桌面上&#xff0c;文件…

深度学习目标检测算法综述(论文和代码)

RCNN-→SPP Net-→ Fast RCNN-→ Faster RCNN-→ YOLO-→ SSD 思路是&#xff1a;a,生成候选框 b&#xff0c;CNN提取特征 c,分类网络 d,回归&#xff0c;位置精修(refine) RCNN: 论文: https://arxiv.org/pdf/1311.2524.pdf 源码: https://github.com/rbgirshick/rcnn 一些解读…

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

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

JBoss Fuse:使用JEXL的动态蓝图文件

在本文中&#xff0c;我将展示如何在Apache Aries Blueprint xml文件中添加一些内联脚本。 我不一定会称其为最佳实践&#xff0c;但我一直认为这种功能可能有用。 可能当我被迫使用xml来模拟命令式编程结构&#xff08;例如使用Apache Ant时&#xff09;时&#xff0c;我开始…

设置序列

//Oracle 中给主键设置自增长&#xff0c;先设序列&#xff0c;在设置触发器Create table BigCustemer1( ID number(10), cus_name varchar2(20),contacts varchar2(20),phone varchar2(20) ,email varchar2(30),address varchar2(50),notes varchar2(70)); create sequence bi…

材料成形计算机辅助设计,材料成型及计算机辅助设计(综述)

CAE介绍&#xff23;&#xff21;&#xff25;的现状及其软件综述&#xff23;&#xff21;&#xff25;的现状及其软件综述主要内容&#xff1a;1、CAE的现状&#xff1b;2、CAE软件综述。摘要计算机辅助工程(CAE)是一种迅速发展的信息技术&#xff0c;是实现重大工程和工业产…

background-size属性100% cover contain

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

服务器是计算机的一种 是指,pc服务器是指什么意思

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。pc服务器是指电脑服务器&#xff0c;pc即为personal computer个人电脑。电脑服务器是一种高性能计算机&#xff0c;作为网络的节点&#xff0c;存储、处理网络上80%的数据、信息&…

小程序richtext_用于基于SWT的应用程序的RichText编辑器组件

小程序richtext本文将完成使用SWT实现我们自己的RichText编辑器组件的任务。 在为我的一位客户开发基于桌面的应用程序时&#xff0c;我遇到了这样的可视化组件的需求&#xff0c;并希望添加一项功能&#xff0c;以允许用户使用粗体&#xff0c;斜体&#xff0c;删除线等功能来…

《重构-改善既有代码的设计》学习笔记(一)

其实看了重构之后&#xff0c;发现重构和设计模式有很多很多相通的地方&#xff0c;或者有着同样的目的。你完全可以参考设计模式的原则来修改已有的代码。 1.单一职责原则 2.开放--封闭原则 3.依赖倒装原则 4.迪米特原则&#xff08;类松耦合&#xff09; 笔者也在《重构》这本…

展示Java开发人员课程包

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

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

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

遍历List过程中同时修改

public static void Main(){List<int> list new List<int>();int[] a{0,1,2,3,4,5,6,7,8,9};list.AddRange(a);foreach (var i in list){Console.WriteLine(i);if (i 2){list.Remove(i);}}Console.Read();} 有一个需求&#xff0c;要对List边遍历边将符合条件的L…

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

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

Java EE 8 MVC:全局异常处理

在之前的先前文章中&#xff0c;我们了解了在Java EE MVC中访问请求信息&#xff08;例如查询或路径参数 &#xff09;的各种方法。 这篇文章显示了如何将全局异常处理应用于MVC应用程序。 假设我们有一个控制器方法可能抛出IllegalArgumentException&#xff1a; Controller…

可以显示网页服务器或者文件系统,浏览器是指可以显示网页服务器或者文件系统的HTML文件(标准通用标记语言的一个应用)内容,并让用户与这些文件交互的一种软件...

参考答案如下浏览技术进步有哪些类型&#xff1f;它们对贸易条件有什么影响&#xff1f;OSPF 协议生成的路由分为四类&#xff0c;指可准通些种软按优先级从高到低顺序来说分别是&#xff1a;区域内路由、区域间路由、第一类外部路由、第二类外部路由。并不是所有的商品都适合于…