본문 바로가기

개인 공부88

TIL : gradle-build-action (짧) 🏃‍♂️ Github Action 이번에 CI를 작성하면서 시간이 생각보다 더 걸려서 gradle을 캐싱해야 하는 일이 생겼다. 처음에는 "CI를 굳이 어렵게 가야하나? 적당히 긁어와서 쓰자"라는 생각으로 다음 코드를 붙여서 사용했다. - name: Gradle Caching uses: actions/cache@v3 with: path: | ~/.gradle/caches ~/.gradle/wrapper key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} restore-keys: | ${{ runner.os }}-gradle- 근데 뭔가 시간적으로 개선이 안되는 것 같아서 "다른 방법이 없을.. 2023. 10. 27.
Http&Network Basic : 웹 공격 기술 (11장) 🔪 웹 공격 기술 11.1 웹 공격 기술 웹 애플리케이션 등의 리소스가 주요 타겟이다. HTTP에는 보안 기능이 없어 애플리케이션에서 모두 구현해야 한다. 변조가 가능한 요청에 공격 코드를 실어서 공격한다. 11.1.1 웹 애플리케이션에 대한 공격 패턴 공격 패턴은 능동, 수동 두 가지가 존재한다. 능동적 공격은 서버를 노리는 공격이다. 리소스에 대해 직접 실행된다. 대표적인 케이스는 SQL 인젝션과 OS 커맨드 인젝션 등이 있다. 수동적 공격은 유저를 노리는 공격이다. 함정을 이용해 유저가 공격 코드를 실행하도록 한다. 대표적인 케이스는 XSS, cross-site scripting, CSRF, Cross Site Request Forgery 등이 있다. 11.2 출력 값의 이스케이프 미비로 인한 취약.. 2023. 7. 11.
Http&Network Basic : 웹 콘텐츠에서 사용하는 기술 (10장) 😜 웹 콘텐츠에서 사용하는 기술 10.1 HTML HTML은 웹 상에서 하이퍼텍스트를 보내기 위해서 개발된 언어이다. HTML 태그로 문서를 수식한다. CSS는 보이는 외관을 변경한다. 10.2 다이나믹 HTML 정적인 HTML에서 클라이언트 사이드 스크립트를 사용해 동적으로 변경하는 기술이다. DOM을 통해서 HTML 문서를 동작시킬 수 있다. 10.3 웹 애플리케이션 웹 기능을 사용해서 제공되는 프로그램을 지칭한다. 이런 프로그램으로 생성된 콘텐츠를 동적 콘텐츠, 사전에 준비된 것은 정적 콘텐츠라고 부른다. CGI는 웹 서버가 클라이언트에서 받은 요청을 프로그램에 전달하기 위한 구조이다. 10.4 데이터 송신에 이용되는 포맷이나 언어 XML은 목적에 맞게 확장 가능한 마크업 언어로 데이터 공유에 목적.. 2023. 7. 11.
Http&Network Basic : HTTP에 기능을 추가한 프로토콜 (9장) 📞 HTTP에 기능을 추가한 프로토콜 9.1 HTTP를 기본으로 하는 프로토콜 최초에는 단순히 문서를 전송하는 프로토콜로 생각했었다, 너무 널리 HTTP가 퍼졌기 때문에 새로운 프로토콜을 만들기는 어렵다. 따라서, 기능을 추가하는 형태로 다양한 요구사항을 만족하고 있다. 9.2 HTTP의 병목 현상을 해소하는 SPDY Google이 발표한 프로토콜이다. 웹 페이지 로딩을 50% 단축하게 목표이다. 병목 현상을 해결하는 좋은 기술이지만 웹의 문제는 그 외에서도 발생한다. 9.2.1 HTTP의 병목 현상 SNS와 같이 큰 트래픽에 대해서 HTTP는 잘 처리할 수 없다. 다음 HTTP의 사양이 병목 현상의 원인이다. 1개의 커넥션에는 1개의 리퀘스트. 리퀘스트는 클라이언트에서만 시작할 수 있다. (리스폰스만 .. 2023. 7. 4.
Http&Network Basic : 누가 엑세스하고 있는지를 확인하는 인증 (8장) 🤷‍♂️ 누가 액세스하고 있는지를 확인하는 인증 8.1 인증이란? 실제로 누가 접근하려고 하는건지 알 수가 없다. 따라서, 등록한 본인만 아는 정보, 등록한 본인만 가진 정보로 확인해야 한다. 이런 정보는 보통 비밀번호, 일회성 토큰, 전자 증명서, 바이오 매트릭스, IC 카드를 사용한다. 앞으로 설명할 인증 방법 외에도 Windows 인증 등도 존재한다. 8.2 BASIC 인증 HTTP/1.0에서 구현된 인증 방식이다. 웹 서버와 대응하는 클라이언트 사이에서 이루어지는 인증 방식이다. Base64라는 인코딩을 사용하지만 암호화 자체는 아니기에 보안성이 떨어진다. 8.2.1 인증 절차 요청에 인증이 필요하면 서버는 401 상태코드로 응답한다. 클라이언트는 아이디:패스워드를 Base64로 인코딩하고 Aut.. 2023. 7. 4.
Http&Network Basic : 웹을 안전하게 지켜주는 HTTPS (7장) 🌐 웹을 안전하게 지켜주는 HTTPS 7.1 HTTP의 약점 7.1.1 평문이기 때문에 도청 가능 HTTP는 암호화하는 기능이 없다. TCP/IP는 통신 경로 상 모든 기기를 소유할 수 없기 때문에 도청이 가능하다. 패킷을 수집함으로 도청을 할 수 있다. 이때, 패킷 캡처나 스니퍼라는 툴을 사용한다. 암호화를 통해서 도청을 방지한다. 통신 암호화 : SSL, TLS이라는 다른 프로토콜을 조합해 안전한 통신로를 확보하고 통신한다. 콘텐츠 암호화 : 콘텐츠 자체를 암호화한다. 주로 웹 서비스에서 이용되는 방법이다. 7.1.2 통신 상대를 확인하지 않기 때문에 위장 가능 HTTP 통신은 상대를 확인하지 않는다. 누구나 요청할 수 있기 때문에 서버는 모두 응답한다. SSL은 암호화도 지원하지만 상대를 확인하는 .. 2023. 6. 27.