[Network] Polling, Long Polling, SSE, Websocket이란?
·
Web Development/BackEnd
Pollingpolling은 클라이언트가 주기적으로 서버에 요청을 보내고, 서버는 클라이언트의 요청에 대한 응답을 리턴하는 방법이다. 구현이 간단하고 HTTP 프로토콜을 사용하므로 호환성이 좋다.서버는 클라이언트의 요청에 매번 응답을 전송해야 한다. 따라서 특수한 상황이 아니면 대부분의 요청이 불필요한 경우가 될 수 있다. 또한 클라이언트의 요청이 많아질수록 서버에 부하가 증가할 수 있다. 또한 데이터가 변경되어도 클라이언트가 새로운 데이터를 받기까지 시간이 걸리므로 실시간성이 떨어진다.Long Pollinglong polling은 클라이언트가 서버에 요청을 보낸 후 서버가 새로운 데이터가 준비될 때까지 요청을 유지하는 방식이다. 다시 말해 서버로부터 응답을 받을 때까지 클라이언트는 대기한다. 데이터가 ..
[Flask] 4. 게시판 기능 추가
·
Web Development/BackEnd
준비게시판 기능을 추가하려면 다음과 같은 파일들이 필요하다. 게시판에 대한 라우터를 정의하는 board.py작성된 게시글을 보여주는 템플릿인 board.html글을 작성하는 페이지인 new_post.html 추가된 파일들에 맞게 기존 파일들을 적절히 수정해야 할 것이다.먼저 게시글에 대한 DB 테이블을 구현해야 한다. 테이블명이 post인 테이블을 생성했다.config.pyfrom flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(150), unique=True, nullable=..
CSRF란 무엇인가? CSRF 공격을 방어하는 방법은?
·
Web Development/BackEnd
정의 CSRF(Cross-Site Request Forgery)는 웹 애플리케이션을 대상으로 하는 공격 기법이다. 공격자는 사용자가 인증된 상태에서 악의적인 요청을 보내도록 유도하여 사용자의 세션을 통해 원하지 않는 작업을 수행할 수 있다. 예를 들어, 사용자가 온라인 뱅킹 사이트에 로그인한 상태에서 악의적인 웹 사이트를 방문하면 공격자는 사용자의 계좌에서 돈을 이체하는 요청을 자동으로 생성할 수 있다.작동 원리1. 사용자가 특정 웹 사이트 A에 로그인하여 세션 쿠키를 받는다. 이 쿠키에는 사용자의 인증 정보가 있으며 요청 시 사용자의 신원을 확인하는 데 사용된다.2. 사용자가 악의적인 웹 사이트 B에 방문한다. B에는 A에 대한 요청을 자동을 생성할 수 있는 스크립트가 있다.3. B가 A에 사용자의 세..