개발/개발지식
-
웹 보안에 대한 정리. (1)개발/개발지식 2023. 2. 1. 20:45
1부. 해킹 보안에 대한 지식을 간과한체 앱을 구현하는 것은 빠르고 편하고 쉬우나 그 대가가 엄청나게 무섭다. 적어도 개발자라면 반드시 관련 지식을 알아둬야만 하는 공격과 보안에 대한 설명을 하겠다. 1.XSS 1)공격 해커가 작성한 코드를 웹페이지에서 작동하게하는 사용자에게 심각한 피해를 입히는 방법이다. 사용자 닉네임을 input으로 받는다고 해보자. 입력 받은 문자열은 웹 페이지 어딘가에 출력되는 정보이다. 예를 들면 게시글이 될 수도 있다. 그렇다면, input 에 정상적인 문자열 대신에 이렇게 적어보는건 어떨까? 이렇게 적은 닉네임을 지닌 유저가 게시글을 올려두었다고 해보자. 게시판을 사용하는 타인이 화면을 로딩하던중 해당 닉네임을 화면에 출력하게 된다면 HTML 태그로 인식되는 해당 닉네임은 ..
-
jwt에 대한 고찰..개발/개발지식 2023. 1. 18. 20:40
1.일반적인 로그인 프로세스 일단 로그인 프로세스를 알아야 이해할 수 있다. 일반적인 로그인 프로세스는 클라이언트에서 아이디와 비밀번호를 입력 받으면 그에 대해서 인증(Authentication) 과정을 거친다. 말하자면 DB에 저장되어있는 정보와 일치하는가 대조해서 ok 사인을 받는다. 클라이언트는 Ok 사인을 받으면 id를 세션구역(서버측 쿠키)에 저장하고 이후에 로그인이 필요한 서비스를 이용할 때마다 세션에 저장해둔 id 를 기준으로 데이터를 찾는다. 즉, 세션의 id 정보를 토대로 기능의 사용을 인가(Authorization) 한다. 그러나, 세션에 id 정보를 저장하는 것이 문제가 되는 경우가 존재하는데, 만약에 서버가 여러개라면? 세션이 저장되어있는 서버를 한번씩 들러야 하는 번거로움이 생긴다..
-
Spring MVC 과 Spring boot개발/개발지식 2021. 10. 31. 16:21
Spring MVC 는 주로 리눅스(CentOS,Fedora) 서버엔진(Apache)에 띄운 Was(Tomcat) 에 의존하여 웹의 흐름을 제어합니다. Spring boot 은 주로 리눅스(Ubuntu) 서버엔진(nginx) 만을 기초로하여 Spring boot 의 임베디드 시스템을 활용합니다. Spring boot 은 배(개발내용) 보다 배꼽(개발환경) 이 더 클경우에 소형 프로젝트에서 쓰이며 Spring MVC 는 세부적인 정교한 설정이 필요한 대형 프로젝트에서 쓰입니다. 물론 그렇다고 해서 어느쪽이 성능적으로 더 좋다고 보긴 어렵습니다. Nginx 와 Apache 를 먼저 비교해보자면, nginx 는 클라이언트를 EventListener (신호들만 잡아서 Queue 대기열에 추가) 로 처리하고 ap..