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注入的可能性.
在這裏插入圖片描述

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