Web

  • Web

    Web – CSRF와 XSS

    정의 사이트 간 요청 위조(또는 크로스 사이트 요청 위조, 영어: Cross-site request forgery, CSRF, XSRF)는 웹사이트 취약점 공격의 하나로, 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 하는 공격을 말한다. 유명 경매 사이트인 옥션에서 발생한 개인정보 유출 사건에서 사용된 공격 방식 중 하나다. 사이트 간 스크립팅(XSS)을 이용한 공격이 사용자가 특정 웹사이트를 신용하는 점을 노린 것이라면, 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. 일단 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코드가 삽입된 페이지를 열면, 공격 대상이 되는 웹사이트는 위조된 공격 명령이 믿을 수 있는 사용자로부터 발송된 것으로 판단하게 되어 공격에 노출된다. 보완책 Referer Check 도메인 단위의 검증 – 백엔드에서 request의 referer를 확인하여 도메인의 일치를 체크하는 방법참고 : https://privacyinternational.org/guide-step/4150/http-referer-explanation Security…

  • Nginx

    Nginx – 설정 정의

    user nginx를 기동하면 master process 와 worker process, cache manager process 3개의 프로세스를 기동한다.저기서 master process 이외를 기동하는 유저를 지정하는 부분이다.master process는 root 유저로 기동하게 된다. worker_process nginx는 싱글스레드이기때문에, core 수에 맞춰서 설정 auto – 자동 설정 worker_cpu_affinity CPU 할당을 지정할 경우 worker_rlimit_nofile 프로세스당 파일 디스크립터의 제한 worker_connections 의 3~4배가 적정 수준 error_log pid linux 에서 시스템 파일디스크립터 를 알기위한 커멘드 events 블럭 worker_connections – 동시 처리 접속 수 multi_accept – 다중 접속 여부 use http 블럭 server_tokens server_tokens response header에 nginx 버전를 표시 여부 정의 보안을 위해 off 권장 include /etc/nginx/mime.types; MIME타입과 확장자의 연관성을 정의 default_type 위의 mime.type 에 확장자부터 MIME 타입을 지정할수 없을경우에, 이것으로 MINE타입이 적용된다.* 기본값은 text/plain 이다. log_format…

  • Web

    Web – WSGI와 CGI

    CGI CGI란? [Python] WSGI WSGI란? WSGI Server 추가적으로 우리가 많이 사용하는 Web Server의 처리 방식이 궁금하다면 – Web Server – 아파치와 Nginx 사담 – 단순히 Web Server만을 통해 정적 컨텐츠를 이용하는 것과 CGI를 통한 동적 컨텐츠의 차이는 사진을 보는 것과 화상통화를 하는 것의 차이라고 보면 이해가 편하려나요? 😁

  • Web

    Web – HTTP 상태 코드 정리

    출처 : MDN Web Doc 주요 응답 코드 정리 100번대(정보) – 요청을 받았으며 프로세스를 계속 진행합니다 100 Continue 진행 중임을 의미하는 응답코드. 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 되는 것을 알려줍니다. 101 Switching protocols 클라이언트가 보낸 Upgrade 요청 헤더에 대한 응답에 사용되며 서버에서 프로토콜을 변경할 것을 뜻합니다. 102 Processing 103 Early Hints 200번대(성공) – 요청을 성공적으로 받았으며 인식했고 수용하였습니다. 200 OK 요청이 성공적으로 수행 201 Created 요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었습니다. 이 응답은 일반적으로 POST 요청 또는 일부 PUT 요청 이후에 따라옵니다. 202 Accepted 요청을 수신하였지만 그에 응하여 행동할 수 없습니다. 이 응답은 요청 처리에 대한 결과를 이후에 HTTP로 비동기 응답을 보내는 것에 대해서 명확하게…

  • Apache,  Nginx

    Web Server – 아파치와 Nginx

    Web Server란? HTTP 서버 (소프트웨어)가 있는 컴퓨터(하드웨어)로 구성되어 있으며 클라이언트(Browser)에서 HTTP Request를 통해 요청해오면 요청에 대한 리소스를 보내주는 역할을 합니다. 리소스는 정적 컨텐츠 (HTML, CSS, JS, 이미지 등) 를 말합니다. 웹 서버는 기본적으로 정적이므로 서버에 미리 저장해두고 그저 응답만 해주면 되는 것들을 처리합니다. 웹 서버 위에 서버 어플리케이션을 사용하게되면 WAS (Web Server + CGI) 가 됩니다. 이번 시간은 대표적인 Web Server인 Apache와 Nginx에 대한 간단히 정리해보도록 하겠습니다. APACHE 소개 아파치 소프트웨어 재단(Apache Software Foundation, ASF)에서 관리하는 HTTP Web Server 소프트웨어 1995년 4월에 최초로 출시 특징 MPM (Multi Processing Module) 방식 오픈 소스 기반의 무료 오래된 역사를 가지고 있는만큼 다양한 모듈과 커뮤니티 보유 MPM (Multi Processing Module) 방식이란? prefork 특징 프로세스가 요청을…

  • Web

    Web이란?

    정의 웹이란 world wide web의 줄임말 인터넷 상의 사용자들의 공유 공간 중 하나 하이퍼텍스트 방식으로 정보를 검색하는 하이퍼텍스트 시스템 1989년 팀 버너스리가 개발 하이퍼텍스트란? 사용자가 하이퍼링크를 통해 즉시 접근할 수 있는 텍스트를 말합니다. 하이퍼링크 – 하이퍼텍스트 문서의 자료를 직접 연결할 수 있는 참조 링크 HTTP란? (HyperText Transfer Protocol) 웹 상의 정보를 주고 받는 통신 프로토콜 시작 도메인 – http:// 기본 포트 – 80 HTTPS란? HTTP의 보안이 강화된 버전 HTTP에서 인증과 데이터의 암호화가 추가되었습니다. 소켓 통신이 일반 텍스트 전송이 아닌 SSL, TLS 프로토콜을 통해 암호화한 세션 데이터 전송으로 진행 시작 도메인 – https:// 기본 포트 – 443 웹 브라우저란? 웹 서버와 통신하며 웹 서버에서 제공하는 HTML 문서와 파일을 화면에 출력해주는 GUI 소프트웨어 웹과…