운영레벨에서 보안을 위해서 console로그 출력을 막아보자.
개발시점 console로그는 디버깅에 도움을 주지만, 운영시점에서는 불필요한 정보를 제공하는 취약점이 될 수도 있다.
코드를 먼저 보자.
//전역변수로 선언
console = {};
console.log = function(){};
console.warn = function(){};
console.error = function(){};
코드를 설명하자면, 우리가 console 객체를 사용 할 수 있는 이유는 내부에 미리 객체가 선언되어 있기 때문이다.
console에는 메서드들이 선언이 되어있다.
위의 코드는 내장객체인 console을 {}로 덮는다.
그렇게되면 너무나 당연하게 console내부에 선언 된 메서드들도 사라진다.
이글을 쓰며, 개발자도구를 열어 console = {}를 테스트 했는데 잘되던 이미지 붙여넣기가 안된다! 아마 이미지붙여넣기 기능 내부에 console로 찍어야 하는 무언가가 있나보다.
이러한 이유로 기존의 console 내부 메서드들에 function(){}처럼 껍데기 하나 입혀준다.
JAVA라면 String 인자를 안받는 log메서드는 없다고 오류 삑삑 뱉을텐데 JS는 그냥 실행을 안하고 넘어가주나? 그래서 에러가 안나나? 아무튼 이부분은 연구가 필요하다.
'Today I learned' 카테고리의 다른 글
[이클립스 플러그인] 이클립스에서 Vim 환경 사용하기 (1) | 2019.09.22 |
---|---|
[이클립스] 자주 사용하는 단축키 정리 (0) | 2019.09.22 |
[Spring Boot] 봄은 지난지 오래지만 마음만은, 스프링부트. 3일차 (0) | 2019.09.04 |
Package Presentation 설정 (0) | 2019.09.04 |
[Window cmd] 특정 포트를 점유하고있는 프로세스 죽이기. (0) | 2019.09.04 |
댓글