반응형
개발을 하다보면 특수문자가 HTML 엔티티로 표기되어 치환이 필요한 경우가 있습니다.
아래 처럼 간단하게 Jquery를 사용해서 처리하는 방법이 있는데 이 방법은 XSS공격에 취약해서 다른 방식을 사용해야 합니다.
1. jquery를 이용한 변환 방법 (XSS 공격에 취약함)
$('<div/>').text('> 특수문자 처리 <').html();
2. 안전한 변환 방법
function decodeHTMLEntities (str) {
if(str !== undefined && str !== null && str !== '') {
str = String(str);
str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
var element = document.createElement('div');
element.innerHTML = str;
str = element.textContent;
element.textContent = '';
}
return str;
}
* HTML 엔티티 정보 (이외에도 많이 있음)
표시되는 문자 | 숫자 표현 | 문자 표현 |
- | �- | - |
space | 	 | - |
space | | - |
- | - | - |
space |   | - |
! | ! | - |
" | " | " |
# | # | - |
$ | $ | - |
% | % | - |
& | & | & |
' | ' | - |
( | ( | - |
) | ) | - |
* | * | - |
+ | + | - |
, | , | - |
- | - | - |
. | . | - |
/ | / | - |
0 - 9 | 0-9 | - |
: | : | - |
; | ; | - |
< | < | < |
= | = | - |
> | > | > |
? | ? | - |
@ | @ | - |
A - Z | A-Z | - |
[ | [ | - |
\ | \ | - |
] | ] | - |
^ | ^ | - |
_ | _ | - |
` | ` | - |
a - z | a-z | - |
{ | { | - |
| | | | - |
} | } | - |
~ | ~ | - |
- | -Ÿ | - |
  | | |
¡ | ¡ | ¡ |
¢ | ¢ | ¢ |
£ | £ | £ |
¤ | ¤ | ¤ |
¥ | ¥ | ¥ |
| | ¦ | ¦ |
§ | § | § |
¨ | ¨ | ¨ |
ⓒ | © | © |
ª | ª | ª |
≪ | « | « |
¬ | ¬ | ¬ |
­ | ­ | |
? | ® | ® |
&hibar; | ¯ | ¯ |
° | ° | ° |
± | ± | ± |
² | ² | ² |
³ | ³ | ³ |
´ | ´ | ´ |
μ | µ | µ |
¶ | ¶ | ¶ |
· | · | · |
¸ | ¸ | ¸ |
¹ | ¹ | ¹ |
º | º | º |
≫ | » | » |
¼ | ¼ | ¼ |
½ | ½ | ½ |
¾ | ¾ | ¾ |
¿ | ¿ | ¿ |
A | À | À |
A | Á | Á |
A | Â | Â |
A | Ã | Ã |
A | Ä | Ä |
A | Å | Å |
Æ | Æ | Æ |
C | Ç | Ç |
E | È | È |
E | É | É |
E | Ê | Ê |
E | Ë | Ë |
I | Ì | Ì |
I | Í | Í |
I | Î | Î |
I | Ï | Ï |
Ð | Ð | Ð |
N | Ñ | Ñ |
O | Ò | Ò |
O | Ó | Ó |
O | Ô | Ô |
O | Õ | Õ |
O | Ö | Ö |
× | × | × |
Ø | Ø | Ø |
U | Ù | Ù |
U | Ú | Ú |
U | Û | Û |
U | Ü | Ü |
Y | Ý | Ý |
Þ | Þ | Þ |
ß | ß | ß |
a | à | à |
a | á | á |
a | â | â |
a | ã | ã |
a | ä | ä |
a | å | å |
æ | æ | æ |
c | ç | ç |
e | è | è |
e | é | é |
e | ê | ê |
e | ë | ë |
i | ì | ì |
i | í | í |
i | î | î |
i | ï | ï |
ð | ð | ð |
n | ñ | ñ |
o | ò | ò |
o | ó | ó |
o | ô | ô |
o | õ | õ |
o | ö | ö |
÷ | ÷ | ÷ |
ø | ø | ø |
u | ù | ù |
u | ú | ú |
u | û | û |
u | ü | ü |
y | ý | ý |
þ | þ | þ |
y | ÿ | ÿ |
반응형
'개발' 카테고리의 다른 글
자바 배열 중복 값 제거 (0) | 2021.06.30 |
---|---|
자바스크립트 변수 값 체크(null 체크, undefined 체크, 공백 체크) (0) | 2021.06.30 |
인텔리j 검색 오류(find in path) 해결 방법 (0) | 2021.04.20 |
HikariCP 튜닝하기 (too many connections 오류 해결) (0) | 2021.04.07 |
apache nginx 전환하기 - 설정 옮기기 (0) | 2021.02.09 |