EL表达式中含有HTML标签|EL表达式防止XSS注入|EL表达式原样输出内容|JSP中输出特殊符号

问题:

最近在复习JAVAEE,做邮件管理系统的项目时候遇到了一个问题:

如果用户发送邮件的内容包含HTML标签,接收到邮件的一方页面样式就会发生改变.

xss问题情况 此处说明HTML标签被解析了,让我们看看出现问题的代码

				<div class="content">
					<div class="message">
							<div class="tmenu">
								<ul class="clearfix">
									<li>标题: ${requestScope.get("title")} </li>
									<li>来自:${requestScope.get("sender")}</li>
									<li>时间:${requestScope.get("time")}</li>
								</ul>
							</div>
					  	 	<div class="view">
								<p>${requestScope.get("content")}</p>
							</div>
					</div>

解决方式:

使用taglib的function标签库: fn:escapeXml()方法

							<div class="tmenu">
								<ul class="clearfix">
									<li>标题: ${fn:escapeXml(requestScope.get("title"))} </li>
									<li>来自:${fn:escapeXml(requestScope.get("sender"))}</li>
									<li>时间:${fn:escapeXml(requestScope.get("time"))}</li>
								</ul>
							</div>
					  	 	<div class="view">
								<p>${fn:escapeXml(requestScope.get("content")}</p>
							</div>

或者使用JSTL标签库的<c:out>
<c:out value=“值” default=“默认值” escapeXml=“true”></c:out>

总结:

不光要知道怎么解决出现的问题,还要想到从根源上防止问题的发生,我们可以在发送邮件时就进行正则表达式的过滤,这样就从根源上杜绝了XSS注入的可能性.
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值