사용자 도구

사이트 도구


wiki:miscellaneous:escapehtmlandunescapehtml

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
wiki:miscellaneous:escapehtmlandunescapehtml [2022/04/12 20:41]
emblim98
wiki:miscellaneous:escapehtmlandunescapehtml [2023/01/13 18:44] (현재)
줄 98: 줄 98:
 ====== unescapeHtml ====== ====== unescapeHtml ======
  
-3. Decryption - //**''unescapeHtml''**// 선택 - Input Text 입력란에 아래와 같이 escapeHtml 처리값을 입력 후,\\ 
  
-<code java> +===== 3. 문제 ===== 
-&amp;lt;p&amp;gt;MyName&amp;lt;p&amp;gt; +Crypto-unescapeHtml에서 Decrypt Text 실행 시 에러 발생\\
-</code>+
 \\ \\
- +Decrypt Text 버튼 클릭 전\\ 
-3.1 - Decrypt Text 버튼 클릭 시 Input Text 입력란에 입력되어 있던 상기 코드가 아래와 같이 변합니다.\\ +{{:wiki:miscellaneous:decode-unescapehtml01.png?600|}}\\
- +
-<code javascript> +
-&amp;amp;lt;p&amp;amp;gt;MyName&amp;amp;lt;p&amp;amp;gt; +
-</code>+
 \\ \\
- +Decrypt Text 버튼 클릭 후\\ 
-3.2 - 이때 Decryption - Input Text 입력란은 아래와 같이 코딩되어 있었습니다.\\ +{{:wiki:miscellaneous:decode-unescapehtml02.png?600|}}\\
- +
-<code java> +
-<input id="decryptInptText" class="decryptInptFld" name="decryptInptFld" type="text"  +
-placeholder="Please input encrypted ID or Password" value="<c:out value="${inputParam.decryptInptFld}" />"/> +
-</code>+
 \\ \\
- +결과값이 출력되면서 동시에 input Text란에 입력했던 값이 ''**%%&lt;p&gt;MyName&lt;/p&gt;%%**'' → ''**%%&amp;lt;p&amp;gt;MyName&amp;lt;/p&amp;gt;%%**''으로 변경됨.\\
-3.3 - 상기의 escapeHtml의 경우와 마찬가지로, 아래와 같이 **''escapeXml="false"''**를 입력하면,\\ +
- +
-<code java> +
-<input id="decryptInptText" class="decryptInptFld" name="decryptInptFld" type="text"  +
-placeholder="Please input encrypted ID or Password" value="<c:out value="${inputParam.decryptInptFld}" escapeXml="false"/>"/> +
-</code>+
 \\ \\
  
-3.Decrypt Text 버튼을 클릭하여도 jsp의 Input Text 입력란은 아래와 같이 그대로 유지됩니다.\\ +==== 3.코드 ====
- +
-<code java> +
-&amp;lt;p&amp;gt;MyName&amp;lt;p&amp;gt; +
-</code>+
 \\ \\
- +코드 수정 전\\
-3.5 - 하지만 내부에서 Decrypted Result에 달되는 값은 아래와 같으며,\\+
  
 <code java> <code java>
-&amp;amp;lt;p&amp;amp;gt;MyName&amp;amp;lt;p&amp;amp;gt;+<!-- Input Encrypted ID or Password field --> 
 +<label for="decryptInptText" class="decryptInptTtl">Input Text</label> 
 +<input id="decryptInptText" class="decryptInptFld" name="decryptInptFld" type="text" placeholder="암호화된 ID 또는 Password를 입력하세요" value="<c:out value="${inputParam.decryptInptFld}" />"/>
 </code> </code>
 \\ \\
  
-3.6 - 상기의 값을 내부에서 unescapeHtml 전처리 과을 거쳐 최종적으로 Decrypted Result 입력란에 표시되는 값은 아래와 같습니다.\\ +코드 수정 \\
 <code java> <code java>
-<p>MyName<p>+<!-- Input Encrypted ID or Password field --> 
 +<label for="decryptInptText" class="decryptInptTtl">Input Text</label> 
 +<input id="decryptInptText" class="decryptInptFld" name="decryptInptFld" type="text" placeholder="암호화된 ID 또는 Password를 입력하세요" value="<c:out value="${inputParam.decryptInptFld}" escapeXml="false"/>"/>
 </code> </code>
 \\ \\
- +코드 수정 후 Decrypt Text 버튼 클릭 후의 캡쳐\\ 
-3.7 - 리 : 입력값, JSTL 처리값, unescapeHtml 처리값은 아래와 같습니다.\\ +{{:wiki:miscellaneous:decode-unescapehtml03.png?600|}}\\
- +
-3.7.1 입력값, jsp에 표시되는 값\\ +
- +
-<code html> +
-&amp;lt;p&amp;gt;MyName&amp;lt;p&amp;gt; +
-</code> +
- +
-3.7.2 - JSTL 처리값(내부에서만 존재)\\ +
- +
-<code javascript> +
-&amp;amp;lt;p&amp;amp;gt;MyName&amp;amp;lt;p&amp;amp;gt; +
-</code> +
- +
-3.7.3 - UnescapeHtml 처리 완료 후 표시되는 값\\ +
- +
-<code java> +
-<p>MyName<p> +
-</code>+
 \\ \\
 +결과값이 출력되면서 동시에 input Text란에 입력했던 값 ''**%%&lt;p&gt;MyName&lt;/p&gt;%%**''이 변하지 않고 그대로 표시됨을 확인.\\
 +\\ 
 +=== Ref Link ===
 +[[https://needjarvis.tistory.com/51|[JSTL] Tag가 jsp화면에 그대로 노출될 경우, escapeXml]]\\
 +[[https://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/c/out.html|JSTL Core - Tag out]]\\
 \\ \\
 +JSTL Core - Tag out에서 ''**%%escapeXml%%**''에 대한 설명은 아래와 같습니다.\\
  
-3.- unescapeHtml 전처리 과정 실수\\+>>Determines whether characters <,>,&,'," in the resulting string should be converted to their corresponding character entity codes. Default value is true.  
 +>> 결과 문자열의 문자 ''**%%<%%**'', ''**%%>%%**'', ''**%%&%%**'', ''**%%'%%**'', ''**%%"%%**''를 해당 문자 엔티티 코드로 변환해야 하는지 여부를 결정합니다. 기본값은 true입니다.\\ 
 +\\ 
 +==== 3.- unescapeHtml 전처리 과정 실수 ====
 \\ \\
-3.9.1 - 지저분한 코드(4 lines) & 많은 변수\\+=== 3.2.1 - 지저분한 코드(4 lines) & 많은 변수 ===
 <code java> <code java>
 String unescapeHtml1stRslt = resultData.setDecryptRsltFld(StringEscapeUtils.unescapeHtml(cryptoVO.getDecryptInptFld().replaceAll("&amp;", "&"))); String unescapeHtml1stRslt = resultData.setDecryptRsltFld(StringEscapeUtils.unescapeHtml(cryptoVO.getDecryptInptFld().replaceAll("&amp;", "&")));
줄 182: 줄 154:
 \\ \\
  
-3.9.2 - 지저분한 코드(4 lines)\\+=== 3.2.2 - 지저분한 코드(4 lines) ===
 <code java> <code java>
 String unescapedHtmlRslt = resultData.setDecryptRsltFld(StringEscapeUtils.unescapeHtml(cryptoVO.getDecryptInptFld().replaceAll("&amp;", "&"))); String unescapedHtmlRslt = resultData.setDecryptRsltFld(StringEscapeUtils.unescapeHtml(cryptoVO.getDecryptInptFld().replaceAll("&amp;", "&")));
줄 191: 줄 163:
 \\ \\
  
-3.9.3 - 지저분한 코드(2 lines)\\+=== 3.2.3 - 지저분한 코드(2 lines) ===
 <code java> <code java>
 String unescapedHtmlRslt = resultData.setDecryptRsltFld(StringEscapeUtils.unescapeHtml(cryptoVO.getDecryptInptFld().replaceAll("&amp;", "&"))); String unescapedHtmlRslt = resultData.setDecryptRsltFld(StringEscapeUtils.unescapeHtml(cryptoVO.getDecryptInptFld().replaceAll("&amp;", "&")));
줄 198: 줄 170:
 \\ \\
  
-3.9.4 - 최종(1 line)\\+=== 3.2.4 - 최종(1 line) ===
 <code java> <code java>
 String unescapedHtmlRslt = resultData.setDecryptRsltFld(StringEscapeUtils.unescapeHtml(cryptoVO.getDecryptInptFld().replaceAll("&amp;", "&").replaceAll("&amp;", "&").replaceAll("&apos;", "'").replaceAll("&lt;", "<").replaceAll("&gt;", ">"))); String unescapedHtmlRslt = resultData.setDecryptRsltFld(StringEscapeUtils.unescapeHtml(cryptoVO.getDecryptInptFld().replaceAll("&amp;", "&").replaceAll("&amp;", "&").replaceAll("&apos;", "'").replaceAll("&lt;", "<").replaceAll("&gt;", ">")));
/volume1/web/dokuwiki/data/attic/wiki/miscellaneous/escapehtmlandunescapehtml.1649763708.txt.gz · 마지막으로 수정됨: 2022/04/12 20:41 저자 emblim98