특수글자들을 안전하게 처리하기
javascript나 nodejs 에서 따옴표와 같은 특수기호들은 해커들이 SQL 인젝션에서 자주 사용되군 합니다.
때문에 이러한 특수글짜들이 포함된 문자열을 디비에 넣거나 웹브라우저에서 현시할때에는 무의미성 기호로 처리하는것이 중요합니다. PHP에서는 htmlspecialchars(); mysql_real_escape_string() 등이 특수글자를 안전하게 처리하면서도 PDO을 사용해서 디비에 쿼리를 실행할때 파라미터로 바인딩하는 보안로직을 심어주어 해결합니다.
[code]
function escapeHTML (str) {
var val = '';
if(typeof str === 'undefined') val = '';
else {
if(typeof str === 'string'){
val = str.replace(/\0/g, '').trim();
} else {
val = str;
}
}
return (function() {
var entityMap = {
"&": "&",
"<": "<",
">": ">",
'"': '"',
"'": ''',
"\\": '\\\\'
};
return String(val).replace(/[&<>"'\\]/g, function (s) {
return entityMap[s];
});
//};
})();
};
[/code]
그누보드에서도 특수글자처리를 위한 제나름의 보안로직이 있습니다. 그저 사용자들이 잘 알고, 개발자들이 이 함수도 이용하면 감사할뿐입니다.
댓글 10개
2년 전
좋은 팁 감사 합니다.
2년 전
보안쪽은 아무것도 모르는데 좋은 팁을 알려주셔서 감사드립니다^^
swallow
2년 전
@김철용 네 잘 써주시면 감사하겟습니다.
일상여행2
2년 전
감사합니다. ^^
marty72
2년 전
초짜라 아직 잘 모르지만 공부하는 마음으로 메모해 봅니다. 감사합니다. ^^
2년 전
좋은 정보 같아 스크랩 합니다. 감사합니다.
그런데 이걸 어떻게 활용하는지 살짝 더 팁을 주시면 더욱더 감사 드리겠습니다. ^^
그런데 이걸 어떻게 활용하는지 살짝 더 팁을 주시면 더욱더 감사 드리겠습니다. ^^
swallow
2년 전
@호텔천사 제가 드린 escapeHTML 함수는 자바스크립트로 작성된것이므로 NodeJS플랫폼에서 다음과 같이 사용될수 있습니다.
가령, 사용자들이 입력한 정보를 디비에 넣기전에 디비의 보안을 위해 escapeHTML('사용자가 입력한 값') 의 리턴값을 저장합니다. 또는 디비에 저장된 자료를 escapeHTML('디비자료')의 리턴값을 웹브라우저에 출력시키면 스크립트인젝션공격을 보다 안전하게 대책할수 있습니다. 감사합니다.
가령, 사용자들이 입력한 정보를 디비에 넣기전에 디비의 보안을 위해 escapeHTML('사용자가 입력한 값') 의 리턴값을 저장합니다. 또는 디비에 저장된 자료를 escapeHTML('디비자료')의 리턴값을 웹브라우저에 출력시키면 스크립트인젝션공격을 보다 안전하게 대책할수 있습니다. 감사합니다.
그누GPT
2년 전
그누에도 input, output 시 관련 함수가 있습니다.
2년 전
오~~ 좋은 팁입니다!
2년 전
좋은 팁 감사합니다
게시판 목록
개발자팁
개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.
질문은 QA에서 해주시기 바랍니다.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 5216 | 2년 전 | 950 | |||
| 5215 | 2년 전 | 1082 | |||
| 5214 | 2년 전 | 722 | |||
| 5213 | PHP |
swallow
|
2년 전 | 668 | |
| 5212 | PHP |
swallow
|
2년 전 | 1693 | |
| 5211 | PHP |
swallow
|
2년 전 | 1453 | |
| 5210 | PHP |
swallow
|
2년 전 | 2141 | |
| 5209 | PHP | 2년 전 | 691 | ||
| 5208 | JavaScript |
swallow
|
2년 전 | 830 | |
| 5207 | JavaScript |
swallow
|
2년 전 | 681 | |
| 5206 | JavaScript |
swallow
|
2년 전 | 604 | |
| 5205 | PHP |
|
2년 전 | 694 | |
| 5204 | 기타 |
techstar
|
2년 전 | 749 | |
| 5203 | JavaScript |
swallow
|
2년 전 | 575 | |
| 5202 | JavaScript |
swallow
|
2년 전 | 603 | |
| 5201 | JavaScript |
swallow
|
2년 전 | 667 | |
| 5200 | JavaScript |
swallow
|
2년 전 | 856 | |
| 5199 | JavaScript | 2년 전 | 619 | ||
| 5198 | 기타 |
swallow
|
2년 전 | 650 | |
| 5197 | PHP |
swallow
|
2년 전 | 731 | |
| 5196 | JavaScript |
swallow
|
2년 전 | 596 | |
| 5195 | PHP |
swallow
|
2년 전 | 2051 | |
| 5194 | PHP |
swallow
|
2년 전 | 612 | |
| 5193 | 기타 |
swallow
|
2년 전 | 662 | |
| 5192 | MySQL |
swallow
|
2년 전 | 1381 | |
| 5191 | JavaScript |
swallow
|
2년 전 | 1070 | |
| 5190 | PHP |
swallow
|
2년 전 | 1923 | |
| 5189 | MySQL |
swallow
|
2년 전 | 6183 | |
| 5188 | node.js |
swallow
|
2년 전 | 1040 | |
| 5187 | node.js |
swallow
|
2년 전 | 786 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기