스머프 공격 이란? 공격자가 여러 대의 컴퓨터를 이용해 source IP를(출발 IP) 희생자의 IP로 변경하여 ICMP 패킷(ICMP Echo Request)들을 컴퓨터 네트워크에 broadcast 하여 희생자의 컴퓨터에 엄청나게 많은 응답 패킷(ICMP Echo Reply)이 도착하도록 만들어 컴퓨터의 동작이 불가능해질 정도로 느려지게 만드는 공격을 뜻한다. 분산 서비스 거부 공격(Ddos)의 일종이다. 이름이 스머프 공격인 이유는 공격에 사용하는 프로그램의 이름이 '스머핑'이기 때문이다. ICMP - TCP/IP (Network Layer)에서 패킷 처리에 문제가 발생할 경우 이를 source IP에게 알려주는 프로토콜이다. 패킷이 어떤 에러로 인해 목적지에 도달하지 못했을 경우, 발생한 에러를 s..
django 테스트 케이스와 비슷하다. api 테스트를 돕는다. from rest_framework import status from rest_framework.test import APITestCase from django.urls import reverse class LocationTestCase(APITestCase): def setUp(self): self.test_url = reverse('location') def test_status(self): data = { 'lon': 126.9784039920235, 'lat': 37.566627074987274, 'limit': 1, 'user_id': "asdf" } response = self.client.get(self.test_url, dat..
장고 초창기 많은 튜토리얼들을 따라 하다 보면, templates에 저장해둔 html 파일들을 가져다 쓸 때 render라는 함수를 이용한다. def todo_list(request): # complete 열이 False인 행만 가져온다. todo = Todo.objects.filter(complete__exact=False) return render(request, 'base/todo_list.html', {'todo': todo}) 대충 뭐해주는 친구인지는 알겠는데.. 정확히 뭘 하는 함수일까? request는 왜 인자로 넣어줄까? 등등 render에 대한 모든 궁금증을 파헤쳐 보자. 프레임워크를 이용하며 모르는 함수가 생겼을 땐 항상 가장먼저 "공식 문서"를 읽어본다. 이후 여러 블로그들을 참조하며..
장고에서 ORM(Object Relational Mapping)은 DB 관리를 위해서 반드시 알아두어야 할 상식이다. ORM은 전통적으로 우리가 DB를 관리하기 위해 DDL이나 DML을 직접 입력해 사용하던 것을 프로그래밍 언어를 통해 통일성 있게 작성해 주는 방법이다. DDL, DML을 이용할 경우 DB 관리자마다 사용하는 쿼리문들이 다르다. 그로 인해 검색 효율성 등이 떨어질 수 있다.(특히 나와 같이 미숙한 개발자들은..) 장고의 ORM을 이용하게 되면 우리는 이런 거 이런 거 만들어주세요! 하면 알아서 제일 효율적인 방법으로 만들고, 검색해준다. ORM은 파이썬 장고에만 국한된 것이 아니라 다양한곳에 사용되고 있다. 장고 ORM의 경우 조금 불편한 점이 몇가지 있다면, 복합 키 구성이 안되고, P..
DRF의 핵심 내용 중 하나인 serializer가 무엇인지 알아보고 어떻게 사용해야 되는지 정리해 보았다. serialization은 "직렬화"라는 뜻이다. 시리얼라이저는 직렬화 시키다. 즉 어떤 데이터를 특정한 포장지를 이용해 감싸주는 도구이다. 시리얼라이저를 사용함으로써 데이터를 정형화 시킬 수 있다. 데이터를 정형화시키게 되면 당연히 통신에도 편하고 데이터 불러오기, 저장 등등에 편리하게 이용할 수 있다. 시리얼라이저는 querysets, db 데이터 인스턴스와 같은 복잡한 데이터들을 파이썬 JSON, XML과 같은 데이터 타입으로 쉽게 변환될 수 있게 해 준다. 아래는 간단한 시리얼라이즈 예시이다. 클래스에 있는 어트리뷰트들을 db에 저장하기 위해, 네트워크를 통해 전달하기 위해 데이터를 정형화..
MITM(Main In The Middle) 기법 중 하나이다. 사람들 사이에서 데이터를 몰래 훔쳐본다는 뜻이다. ARP 스푸핑이 무엇인지 알기 위해선 우선 ARP 가 무엇인지 알아야 한다. ARP(Address Resolution Protocol) 란? ARP는 IP 주소를 MAC 주소와 매칭 시키기 위한 프로토콜이다. 송신하는 노드는 수신하는 노드의 IP datagram을 갖고 있다. 그런데 다음 노드의 IP address가 Data Link Layer로 이동하는 경우에는 쓸모가 없다. 이때 우리는 다음 노드의 DLC 즉 MAC 주소를 알아야 한다. 이 MAC 주소를 알아내기 위해 ARP를 사용한다.라고 설명되어 있는데 조금 더 쉽게 풀어보자. 더보기 datagram - IP 계층의 패킷 대부분의 가..