목록전체 글 (29)
개발자라면 한번쯤은 보러오는 곳
때는 바야흐로 2023년 1월 말. 평화롭게 파이랩을 다니고 있던 "BlockChain Platform Engineer" 표XX씨. 블록체인 회사에 다니니 꿈이 커져 코인 부자가 될거라는 큰 꿈을 안고 BlockChain을 공부하기 시작했다. https://github.com/okpyo12/study-blockchain 공부한 것들을 기록하기 위해 github에 커밋명도 이쁘게해서 올렸다.(이게 실수였다..) 제 2의 비트코인, 업비트, 오픈씨를 만들 수 있을 줄 알았지만 한번의 실수로 인해 지갑이 탈탈 털리고 말았다. 실수한 내용은 바로 지갑의 Private key를 Github에 올려버린것... smart contract를 만들고 deploy 한뒤 로컬에서 테스트를 하기 위해서는 연결 되어 있는 지갑..
CSRF(Cross-Site Request Forgery) == one-click attack == session riding - 권한이 없는 command가 웹사이트를 신뢰하는 유저로 부터 전송 XSS -> client가 당함 CSRF -> Server가 당함 웹 서버가 관리자 계정에 대한 새 암호를 설정하기 위해 현재 암호를 요구하지 않는다고 가정합니다. 공격자는 관리자의 다음 요청이 자신의 암호를 재설정한다는 것을 알고 있습니다. 보안점 안전한 세션 관리 – 쿠키뿐만 아니라 GET 및 POST 매개변수에서 인증을 요구합니다. – HTTP 리퍼러 헤더 확인 – 인증 쿠키의 수명 제한 – POST 처리 시 GET 매개변수 무시 – 모든 양식 제출에 비밀, 사용자별 토큰 요구 SQL Injection 애..
OAuth Mine == Client : 우리가 만든 서비스 User == Resource Owner : 우리의 서비스 이용자 Their == Resource Server : 우리가 제어하고자 하는 자원을 가지고 있는 서버, 데이터를 가지고 있는 서버 Authorization Server : 인증과 관련된 처리를 전담하는 서버 Client ID : 만들고 있는 애플리케이션을 식별 가능하게 해주는 ID Client Secret : 외부 노출 X, Secret Code Authorized redirect URLs : Authorized code 전달 받는 곳 -> 임시 비밀번호 엑세스 토큰 발급 Oauth의 목적 : 엑세스 토큰을 발급하는 것 인증 완료하면 authorization code 삭제 Resouc..
Web - Client/server model on TCP/IP -> client: browser that requests, receives, “displays” Web objects - > server: Web server sends objects in response to requests - Stateless protocol - HTTP 1.1: RFC 2068 Web Shell - 웹 서버가 유저에게 실행파일을 업로드를 허용할때 취약점 -> 파일 업로드, 지원서 업로드,... - 해커는 시스템 명령을 실행합니다. 마치 텔넷으로 로그인한 것처럼 강력합니다. 대책 - 파일 업로드 금지가 안된다면 - 특정 확장자/크키 확인 - 확장자 명 제한 - 실행 권한 삭제 - root 권한으로 가지고 있직 삭제 s..
Intrusion Detection System(침입 탐지 시스템) - 악의적인 활동이나 정책 위반에 대해 네트워크 및 시스템 활동을 모니터링하고 관리 스테이션에 보고서를 생성하는 장치 또는 소프트웨어 응용 프로그램 - Firewall(침입 차단 시스템) - IPS(Intusion prevent sytstem) 침입 방지 시스템 == IDS + Firewall Confusion Matrix(혼돈 행렬) Host-based IDS - 외부 인터페이스의 네트워크 패킷이 아닌 컴퓨팅 시스템의 내부를 모니터링하고 분석하는 침입 탐지 시스템 - 컴퓨터 시스템의 내부를 감시하고 분석하는 데 중점을 둠 - 개인의 워크스테이션, 서버에 설치될 수 있으며, 컴퓨터 자체를 제한 - 운영체제에 설치된 사용자 계정에 따라 어..
Firewall 승인된 통신을 허용하면서 승인되지 않은 액세스를 차단하도록 설계된 컴퓨터 시스템 또는 네트워크의 일부 네트워크를 허용하거나 거부하도록 구성/ 일련의 규칙에 기반한 전송(규직-설정, 정책) 전통적으로 방화벽은 레이어 3에서 작동하지만 레이어 2도 가능합니다. Link Level에서 packet만 보냄 Transparent == 투명한 Stateless Weakness of stateless firewall Performance disadvantage - 규칙이 하나의 패킷을 수락하면 동일한 연결에서 후속 패킷도 수락합니다. -> stateless 는 안함 Security hole - 공격자가 TCP 세션을 공격한다. Stateful - 패킷이 첫 번째 규칙과 일치하면 방화벽은 ftp 메세지..
Last Dance 마지막 모각윙. 앞으로 윙커톤을 어떻게 개발하고 진행할 것인지에 대한 회의를 했다. 로그인 개발 JWT를 이용해 토큰 로그인을 하는 Spring + Kotlin 을 구현했다. Postman으로 login을 확인해봤을때 토큰이 request되는모습을 볼 수 있다. Controller Code @RestController @RequestMapping("api/users") class AuthController(private val userService: UserService) { @PostMapping("signup") fun singup(@RequestBody body: SignupDTO): ResponseEntity { val user = User() user.email = body...
Spring.. Spring 과 Kotlin 모두 처음 사용하기 때문에 우선 인프런에서 볼 수있는 무료 김영한의 스프링 입문 영상을 보았다. 스프링이 어떤 것인지 가늠을 잡고 코딩을 시작했다. 처음에는 모든 것이 낯설었다. 객체지향적 설계와 왜 쓰는지 모르겠는 어노테이션들... 여러 코드들을 따라 치보다 보니 어느정도 익숙해졌다. 우선 백앤드의 가장 기본 CRUD가 어떻게 작동하는지 공부하고 차근차근 코딩을 할 예정이다. API CALL URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다. 마지막에 슬래시 (/)를 포함하지 않는다. 언더바 대신 하이폰을 사용한다. 파일확장자는 URI에 포함하지 않는다. 행위를 포함하지 않는다. 기본적인 API CALL 규칙들을 정해놓고 API CALL 명세..