일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- condition
- TypeScript
- npm
- AI
- property
- webpack
- git
- nginx
- generic
- machine learning
- Python
- Clone
- vuetify
- loop
- security
- var
- vue.js
- 앙상블
- BOJ
- type
- bash
- leetcode
- 보안
- dotenv
- C#
- docker
- JavaScript
- scss
- VUE
- C++
- Today
- Total
목록security (4)
ice rabbit programming
쿠키 쿠키(Cookie)는 HTTP 통신 시에 사용자 정보 유지를 위해 헤더에 붙여 전송하는 정보이다. 즉, 서버에서 필요로하는 클라이언트 정보를 헤더에 붙여서 전달하는 것이다. 세션 관리를 위해서 token을 저장하거나 임시 데이터 관리 등에 사용된다. 중요 정보를 가진 쿠키는 반드시 암호화된 데이터 통신에서만 전달되도록 해야 한다. 세션 쿠키 : 서버를 이용하는 동안 사용자 정보를 유지한다. 자바스크립트에서 액세스할 수 없도록 쿠키의 속성을 설정해서 사용해야 한다. 영구(영속성) 쿠키 : 하드 디스크에 저장되는 쿠키로, 재방문시 사용자 정보를 기억하는 데에 사용된다. 중요 정보를 가지지 않도록 관리해야 한다. 쿠키를 주고 받는 메커니즘은 다음과 같다. 서버->클라이언트 : 쿠키 객체 생성(key:va..
파일을 HTTP로 주고받을 때에는 multipart/form-data의 폼으로 전송하게 되는데, request의 바디는 여러 파트로 나누어져 파라미터와 파일의 내용을 전달하게 된다. 아무래도 업로드가 파일이 서버에 저장되는 것이니 더 주의할 부분이 많다. 정보를 유출하거나 공격하는 파일을 만들어 외부에서 실행하는 것이 파일 업로드 시의 대표적인 공격이다. 파일 업로드 시 주의할 점 사이즈(개수/크기) 제한을 두어야 한다. -> 사이즈 제한을 두지 않으면 대용량의 파일을 올려 DoS 공격을 취할 수 있다. 타입 체크를 실시하여야 한다. 이에 더해 파일의 실행 권한을 부여하지 않는다. -> 웹쉘을 올려 외부에서 실행하여 공격할 수 있다. 외부에서 실행 뿐만 아니라 아예 접근이 불가능하도록, 외부에서 접근이 ..
XSS란, 웹사이트 관리자가 아닌 이가 악성 스크립트를 삽입하여 개인정보를 유출하거나 악성코드를 실행하는 공격 기법이다. 이전 글의 SQL 인젝션과 유사한 공격 기법인데, Javascript 구문을 넣어서 탈취한다는 차이가 있다. SQL 인젝션과 유사하다는 말은, 동일하게 유효성 검사를 통해 필터링해야 한다는 것이다. 더불어 웹사이트에서 동적으로 변하는 속성에 대해 DOM(Document Object Model) 구조 변경 시 검증이 필요하다. XSS는 크게 3가지로 나뉜다. Stored XSS : 서버에 저장하여 공격 Reflective XSS : 동적으로 생성되는 응답 페이지 작성 시 공격(링크를 눌렀을 시 공격) DOM XSS : DOM 구조 변경 시 공격 이러한 공격은 정규식을 이용한 입출력값의 ..
일전에 한 대기업 인턴에 다닐 때, 개인 과제로 웹 전반을 제작하였었다. 프론트엔드와 백엔드 모두를 개발하다보니 의문점이 들어 당시 멘토였던 차장님께 질문을 했었다. "Client에서 유효성 검사를 했는데, Server에서도 유효성 검사를 해야 하나요?" 당시 답변은, Client를 통하지 않은 request도 Server로 들어올 수 있으니, 해야 한다는 것이었다. 옳다고 생각하여 두 곳 모두에서 유효성 검사를 진행하기는 했지만, Insomnia나 Postman 등을 통한 request 정도로 생각하고 있었는데, 인젝션에 대해서 알게 되면서 그 때의 답을 완벽히 알게 되었고, 유효성 검사의 중요성을 다시금 알게 되었다. SQL 인젝션(Injection) : Client의 입력 값을 조작하여(인증우회) ..