반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- spring security 설정
- over()
- spring security 커스텀
- 개인정보 수집 유효기간 자바
- 바탕화면 정리 자바
- 티스토리챌린지
- 프로그래머스
- 자바의정석
- SQL Mapper
- 입출력
- authenticationprovider 설정
- java
- 객체지향
- CPU
- spring security
- 혼공얄코
- userdetailsservice 설정
- 로그인 핸들러 구현
- 다형성
- 멀티프로세싱
- 달리기 경주 자바
- 멀티태스킹
- hackerrank
- 캡슐화
- 오블완
- 오버라이딩
- 자바의 정석
- 쿠키
- 리눅스
- 오버로딩
Archives
- Today
- Total
쉽게 쉽게
[JavaScrpit] 특수문자 치환 본문
반응형
1. 이슈
게시글 내용 저장 시 특수문자에 대한 처리가 부족함을 느꼈다.
<>와 같은 특수문자들을 그대로 출력 시 이를 태그로 인식하여 원치 않는 형태로 출력되거나 했다. (빈칸이나 공백이 되거나...)
또한 XSS 공격에 취약할 것이란 생각이 들었고 이를 대체문자로 치환하여 저장하는 방식을 알아봤다.
2. 특수문자 치환
//특수문자 -> escape 치환
function escapeHtml( str ) {
if (str == null) {
return "";
}
str = str.replace(/</g,"<");
str = str.replace(/>/g,">");
str = str.replace(/\"/g,""");
str = str.replace(/\'/g,"'");
str = str.replace(/\n/g,"<br />");
return str;
}
// escape -> 특수문자 치환
function unescapeHtml(str) {
if (str == null) {
return "";
}
str = str.replace(/&/g, '&');
str = str.replace(/</g, '<');
str = str.replace(/>/g, '>');
str = str.replace(/"/g, '"');
str = str.replace(/'/g, "'");
str = str..replace(/'/g, "'");
return str;
}
예를 들어 escape 치환 전 <&test%>라는 문구를 입력했을때 DB에 저장되는 값은 아래와 같다.
escape 치환 후는 아래와같다.
만약 escape 치환 후 저 태그 그대로 출력된다면 위에 정리한 unescapeHtml()를 이용해 재치환하여 사용하면 된다.
https://pracon.tistory.com/154
잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다. |
반응형
'개발공부 > Javascript와 JQuery' 카테고리의 다른 글
[JavaScript] 우편번호 구현 (5) | 2024.10.21 |
---|---|
[Javascript] 이미지 업로드 (0) | 2024.05.21 |
[JavaScript] 쿠키(Cookie) 사용법 (0) | 2024.05.13 |
[Javascript] 공지 팝업창 쿠키 설정 (0) | 2024.05.05 |
[jQuery] ~로 시작하는 선택자 호출하기 (1) | 2024.04.11 |