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注入的可能性.
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章