본문 바로가기

Web6

[Gradle] build.gradle를 톺아보자 이번에 새로 강의를 들으면서 Gradle을 사용하는데 build.gradle에 의존성을 추가하다 보니 정확히 설정을 잘 모르고 사용하고 있다는 생각이 들어 공부를 시작하기로 했다. Plugin Gradle의 플러그인은 프로젝트의 기능을 확장하는 역할을 한다. 처음에는 어떤 특별한 기능들이 더 제공된다는 이야기인가하고 헷갈렸는데 그게 아니라 예를 들어 해당 플러그인이 자바라면 자바가 제공하는 코드를 컴파일 한다던지, 혹은 소스 파일 설정과 같은 다양한 번들 기능이 추가된다는 이야기였다. plugins {} 구문의 특징 plugins { id 'java' } 첫 번째로 이 구문은 항상 빌드 스크립트 최상위에 위치해야 하고 다른 구문 안에 중첩되게 사용하지 않고 위와 같이 단독으로 써야 한다. 두 번째로 내부.. 2023. 2. 4.
[IntelliJ] war과 war(exploded)의 차이 들어가기 전에 최근에 을 보고 2일 전부터는 이란 책을 보고 있는데 톰캣 설정을 하면서 Deployment 탭 설정을 안 해줬을 때 계속해서 아래와 같은 경고 메시지가 떴다. 처음에 으로 서블릿 실습을 할 때 zip파일을 프로젝트로 가져오면서 톰캣이 실행 안되는 오류가 났었는데 그때 Artifacts를 도대체 어떻게 만들라는 건지 다른 사람들 실습 과정처럼 화면이 나오지 않아서 당황했던 기억이 있다. 그때 상황을 캡쳐하고 기록해놨어야 하는데 아쉽게도 기록해두지 못했다. 그때 톰캣 서버가 뜨지 않았던 원인은 스프링 MVC 프레임워크를 추가해주지 않아서 생긴 거였다. 그거 하나로 이틀을 낭비했는데 되게 낙심했었다. 아무튼 스프링 MVC 프레임워크를 추가하고 나서는 알아서 war(exploded)로 설정이 됐.. 2022. 9. 28.
CSRF/XSRF(Cross-Site Request Forgery) 공격과 대응 방안 CSRF/XSRF(Cross-Site Request Forgery)란 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격이다. 메인 그림 시나리오 1. 김노력이 은행 홈페이지에 로그인을 한다. 2. 은행 홈페이지는 김노력의 계정 정보를 검증하고 토큰을 발급한다. 3. 해커는 합법적인 통신을 가장한 위조 요청을 보낸다. 4. 김노력은 은행에 해커의 요청을 보낸다.(하지만 김노력은 알지 못하지,,) 5. 김노력의 브라우저에 있는 토큰 정보를 받은 은행은 위조 요청을 실행한다. 전제 조건 1. 사용자가 보안이 취약한 서버로부터 이미 인증을 받은 상태여야 한다. 2. 쿠키 기반으로 서버 세션 정보를 획득할 수 있어야 한다. 3. 공격자는 서버를 .. 2022. 9. 2.
XSS(Cross-Site Scripting)의 공격 방법과 대응 방안 XSS란 웹사이트에 악성 스크립트를 주입하는 행위를 말한다. 해커는 사람들이 안전하다고 생각하는 웹사이트에 악성 스크립트를 주입하고, 주입된 스크립트가 포함된 게시글을 열람한 피해자들의 쿠키가 해커에게 전송된다. 이를 통해 해커는 피해자의 브라우저에서 스크립트를 실행해 다음과 같은 행위를 시도 할 수 있다. - 사용자의 세션 가로채기 - 웹사이트 변조 - 악의적인 컨텐츠 삽입 - 피싱 공격 공격 대상과 주요 목적 스크립트 언어와 취약한 코드를 공격 대상으로 하며, 주요 목적은 사용자의 정보를 도용하는 것으로 로그인 입력란을 감염시켜 로그인 세부 정보와 쿠키를 탈취하는 방식으로 진행된다. 세 가지 유형 1. 반사형 XSS(Non-persistent XSS, Reflected XSS) 가장 일반적인 유형의 .. 2022. 9. 2.
SQL Injection의 공격 방법과 대응 방안 SQL Injection이란 악의적인 사용자가 보안상의 취약점을 이용해 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격하는 방식이다. 주로 사용자가 입력한 데이터를 제대로 필터링, 이스케이핑하지 못했을 때 발생한다. 우리나라에서도 온라인 커뮤니티들이 SQL Injection으로 인해 회원정보를 유출시킨 적이 있다. 관련 기사 확인하기 SQL 인젝션은 웹 애플리케이션 서버(WAS)로 들어온 웹 요청을 처리한 결과가 DB 내용을 조회하거나 제어할 때 쓰는 SQL로 동작하게 만드는 공격 기법이다. SQL을 처리해 결과로 내보내는 게 DB의 기본 동작이지만, 통상적인 웹 요청은 SQL로 동작해선 안 된다. 누군가 마음대로 권한이 높은 계정을 만들 수도 있고 데이터를 지울 수도 있기 때문이다. 알기 쉬운.. 2022. 9. 2.
LinkedIn SNS 연동 🚀 Overview 링크드인 API는 OAuth2를 사용하여 유저 인가와 API 인증을 처리한다. 애플리케이션은 링크드인 회원 정보에 접근하거나 링크드인으로부터 데이터를 가져오기 전에 인증과 인가가 이루어져야 한다. 승인 타입 승인 타입은 링크드인 리소스에 접근할 때 필요한 인가에 대해 승낙 여부를 알려주는 코드이다. 링크드인은 회원 정보가 오용되지 않도록 정보를 보호하기 위해 승인 타입을 사용한다. 그래서 데이터를 사용하기 전에 승인 타입을 생성해야 한다. 로그인 연동 과정 전제 조건 ○ 애플리케이션 생성 링크드인 개발자 포털에서 애플리케이션을 생성한다. ○ 승인 타입 추가 Products 탭에서 "Sign in with LinkedIn"을 추가하고 Auth 탭에 있는 Oauth 2.0 scopes에 .. 2021. 12. 15.