c:out标签和el表达式与跨域攻击XSS

很多时候,在JSP中我们喜欢用EL表达式输出信息,但是最近发现这个确实存在个问题:XSS即跨域攻击。

下面看个例子:

  <c:out value="${student.name}" />  和 ${student.name}都能输出同样的结果。

  但是有跨域攻击时student.name = <script>alert("hello world!")</script>,${student.name}将会执行,而c:out则不会。

原因:c:out 有个缺省属性escapeXML="true" 将会对特色字符如 ‘<‘ ‘>‘ ‘&‘ 等进行转义,而EL表达式则不会。

时间: 2024-10-14 06:19:42

c:out标签和el表达式与跨域攻击XSS的相关文章

跨域攻击xss

要完全防止跨域攻击是很难的,对于有些站点是直接 拦截跨域的访问,在你从本站点跳转到其他站点时提醒,这算是一种手段吧. 而跨域攻击的发起就是在代码(包括html,css,js或是后台代码,数据库数据)里插入一些特殊功能的字符,达到攻击者目的.比如在你的html里插入一段代码,当用户点击是将用户sessionid发送到某个站点,然后就可以模仿此用户了... 我觉得若是完全限制用户只使用 汉字.数字,而不能使用特殊字符则完全可以达到要求,不过有局限性,因为有些人喜欢装逼使用外文

13.1 jsp标签技术 el表达式

一.标签技术 1. 标签技术概述 在jsp页面中有HTML语句和java语句相互嵌套,如果java的逻辑代码和页面的HTML组成代码都十分复杂,两者有掺杂在一起,页面的可读性和可维护性都将降低.为了解决这个问题,产生了标签技术.用它来替换页面中的java语句,这样页面中只会出现HTML代码,整体的可读性和可维护性都会提升. 2. 常用的JSP标签技术 jsp标签 sun公司提供的标签技术 - 目前用的比较少 el表达式 便捷易用 - 使用非常广泛 - 但只是表达式无法实现复杂功能 jstl标签库

JSP常用标签——JSTL标签和EL表达式

一.JSTL简介 1.什么是JSTL JSTL是Java中的一个定制标记库集.(这个标记库集不需要自己编写,可以直接使用) 2.为什么要使用JSTL 实现了JSP页面中的代码复用(基于标签库原理,重复率较高的代码块支持复用,提高效率) 书写JSP页面时可读性更强(长得很像xml,方便前端查看和参与开发) 用事实告诉你为什么使用JSTL: 实现: 但是,使用JSTL效果如下: 3.JSTL环境搭建 JSTL的下载: 下载地址:http://archive.apache.org/dist/jakar

JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% request.setCharacterEncoding("UTF-8"); %> <jsp:forward page="/index.jsp"> <jsp:param value="张三" name="userName&q

JSP标签和EL表达式

1.jsp标签: sun原生的,直接jsp使用 <jsp:include> -- 实现页面包含,动态包含 <jsp:include page="/index.jsp"/> <jsp:forward> -- 请求转发 <jsp:param> -- 配合上面上面的两个标签使用, <jsp:forward page=""> <jsp:param value="xxx" name=&quo

struts标签、OGNL表达式、JSTL标签、EL表达式

Struts标签.Ognl表达式.el表达式.jstl标签库这四者之间的关系和各自作用 我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用    Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码复用.Struts2允许在页面中使用自定义组件,这完全能满足项目中页面显示复杂,多变的需求. Struts2的标签库有一个巨大的改进之

Java学习——JSTL标签与EL表达式之间的微妙关系

原文总结的太好了,忍不住记录.转发. 原文地址:http://blog.csdn.net/u010168160/article/details/49182867 目录(?)[-] 一EL表达式 EL相关概念 EL基本格式 EL语法组成-标识符 PS使用EL的时候默认会以一定顺序pageContextrequestsessionapplication搜索四个作用域将最先找到的变量值显示出来 开启和关闭EL表达式 二JSTL标签库 相关概念 JSTL标签库分类 JSTL的优点 为什么要用JSTL 使

JSP三大指令,九大内置对象,JSP动作标签,EL表达式与函数库

JSP三大指令 ---------------------------------------------- 一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:格式:<%@page language="java" info="xxx"...%> * pageEncoding和contentType: > pageEncoding:它指定当前jsp页面的编码,只要不说谎,就不会有乱码!在服务器要把jsp编译成.jav

2使用struts2的标签库 EL表达式

与struts1标签库进行比较,struts2的标签库有一个巨大的改进之处就是struts2标签库不依赖于任何表现层技术.就是说struts2的大部分标签可以在jsp页面中使用,也可以在Velocity和FreeMarker等模板技术中使用. Struts2的标签都定义在s标签库中,URI为/struts-tags的空间下.简单的对struts2的标签进行分类: UI标签,用于HTML元素的标签. 非UI标签,主要用于数据访问,逻辑控制等的标签. Ajax标签,用于Ajax支持的标签. 首先将s