Web
-
[Nodejs] express-rate-limit으로 DoS 예방하기Knowledge 2019. 11. 20. 11:15
Nodejs의 express 모듈은 간편한 방식으로 Web API를 구성할 수 있게 해준다. 나름 안정성도 꽤 뛰어나 기본적으로 많이 쓰이는 모듈일 것이다. 그런데, Nodejs에 익숙하지 않아 일반적인 튜토리얼을 참고해 서버를 만들어 구동했더니, 예상치 않은 문제가 나타났다. 운영중인 서버에 단순 DoS (Denial of Service) 공격이 발생했는데, 서버 인스턴스의 모든 리소스가 순식간에 Max를 치고 서버가 무응답 상태로 전환되었다. 인스턴스가 살아는 있으나 간단한 SSH 접속 조차 불가능한 상태라 어쩔 수 없이 인스턴스 재부팅을 했다. 로그를 살펴보니 인커밍 패킷이 엄청 들어오고, CPU 점유가 맥스를 치고, 아웃고잉 패킷이 엄청 늘어났다. 대단한 서버도 아닌데, 왜 공격한지는 모르겠지만...
-
안드로이드에서 Rest API 호출하기Android 2019. 5. 30. 23:40
최근의 안드로이드 앱들은 서버와의 연결이 필수적이다. 과거에는 성능 등의 문제로 Native Server가 쓰이는 경우가 많았지만, 현대에 들어서는 Restful Web API를 통해 서버와 교신을 하는 경우가 늘어났다. 안드로이드 앱은 코틀린으로 작성되었거나 NDK 로 쓰여진 부분을 제외하면 자바 기반으로 쓰여지는데, 다행히 Java는 전통적으로 서버 사이드에 많이 쓰여왔기에 http 형태의 스트림을 처리하기에 알맞은 내장 클래스들을 대부분 가지고 있다. 이번에는 특별한 라이브러리를 쓰지 않고 Java만을 이용해 간단히 Rest API를 호출하는 방법을 살펴보려 한다. 필요한 클래스는 다음과 같다. Class Description HttpURLConnection HTTP 연결을 만든다 InputStre..