문제 N×M의 모눈종이 위에 아주 얇은 치즈가 과 같이 표시되어 있다. 단, N 은 세로 격자의 수이고, M 은 가로 격자의 수이다. 이 치즈는 냉동 보관을 해야만 하는데 실내온도에 내어놓으면 공기와 접촉하여 천천히 녹는다. 그런데 이러한 모눈종이 모양의 치즈에서 각 치즈 격자(작 은 정사각형 모양)의 4변 중에서 적어도 2변 이상이 실내온도의 공기와 접촉한 것은 정확히 한시간만에 녹아 없어져 버린다. 따라서 아래 모양과 같은 치즈(회색으로 표시된 부분)라면 C로 표시된 모든 치즈 격자는 한 시간 후에 사라진다. 와 같이 치즈 내부에 있는 공간은 치즈 외부 공기와 접촉하지 않는 것으로 가정한다. 그러므 로 이 공간에 접촉한 치즈 격자는 녹지 않고 C로 표시된 치즈 격자만 사라진다. 그러나 한 시간 후, ..
공격자가 공격하려는 웹 사이트에 악성 스크립트를 넣는 기법이다. 웹 사이트에 악성 스크립트를 넣어 해당 사이트에 접속하는 유저의 쿠키, 세션 토큰 등의 민감한 정보를 탈취한다. 이 공격을 이용해 사용자의 쿠키 등을 탈취하여 CSRF 공격까지 이어지는 경우도 있다. 자바스크립트를 사용하여 공격하는 경우가 가장 많다. XSS 공격은 크게 두 가지 방법으로 나뉜다. 아래의 두 가지 이외에도 다양한 방법이 존재한다. 공격 방법 1. Stored XSS (Persistent XSS) 공격자의 악성 스크립트가 서버에 저장되어 지속적인 공격이 가능하므로 Stored XSS 라고 부른다. 웹 사이트 게시판, 댓글 등에 악성 스크립트를 작성하여 공격하는 방식이다. 공격자가 게시판에 공격 스크립트를 작성하면, 서버는 해당..
CSRF 공격이란 클라이언트가 서버를 공격하는 것을 뜻한다. 웹 사이트(서버)가 신뢰하는 클라이언트로부터 승인되지 않은 명령이 전송되는 악의적인 공격이다. 시나리오 예시 Mallory는 Bob의 은행의 웹 사이트 스크립트를 참조하는 HTML 이미지를 만들었다. Bob의 은행이 그의 인증 정보를 쿠키로 갖고 있고, 그 쿠기가 만료되지 않았다면, Bob의 브라우저는 그의 쿠키와 인출 양식을 제출할 것이다. 즉 Bob의 승인 없이 거래를 승인하게 되는 것이다. 만약 사용자가 비밀번호 변경 시 서버가 기존 비밀번호 확인을 하지 않는다면? 공격자는 임의로 사용자의 비밀 번호를 바꿀 수 있다. 위 시나리오를 보고 잘 이해가 안 될 것이다. CSRF 공격 과정에 대해 차근차근 이해해 보자. 1. 사용자가 보안이 취약..
깃헙 같은 곳에 프로젝트를 올릴 때 중요한 정보들은 올리지 않고 따로 관리해 주어야 한다. 여러 방법 중 하나인 ini 파일을 생성해서 중요 정보를 저장하고, 불러와서 사용하는 방법에 대해 배워보자. 파이썬 표준 라이브러리에 ini 파일 읽는 패키지가 있다. import configparser 우선 ini 파일을 하나 만들어 보자. settings의 secret key는 노출되면 안되기 때문에 이 정보를 ini파일에 다음과 같이 저장한다. ini 파일은 프로젝트 폴더에 저장한다. (manage.py가 저장되어 있는 폴더) [SETTING] SECRET_KEY = 당신의비밀키 이제 settings.py로 돌아가서 ini파일에 저장해둔 secret key를 가져오자. import configparser im..
우리가 그동안 장고를 실행할 때 python manage.py runserver 를 입력하여 개발 하는 도중 서버를 실행하여 각종 테스트를 해봤다. 하지만 장고의 내장서버를 이용하여 실제로 운영하는데에는 많은 한계가 있다. 내장 서버는 오직 개발 테스트 용으로만 써야 한다. Now’s a good time to note: don’t use this server in anything resembling a production environment. It’s intended only for use while developing. 장고 튜토리얼에 게시되어 있는 글이다. 이것을 실제 배포용 서버로 사용하지 마라. 오로지 개발을 위해 사용하라. 라고 되어 있다. 자 그럼 이제 실제로 배포를 하기위해 필요한 것들을..