일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 앙상블
- webpack
- Python
- C#
- nginx
- type
- docker
- Clone
- vuetify
- machine learning
- security
- property
- leetcode
- dotenv
- AI
- VUE
- JavaScript
- git
- bash
- loop
- var
- BOJ
- scss
- C++
- vue.js
- npm
- 보안
- condition
- generic
- TypeScript
- Today
- Total
목록Development (105)
ice rabbit programming
(아이패드에 필기가 있었는데, 아이패드가 충전하다가 망가지는 바람에 소실되어, 이후 글은 따로 저장해둔 요약본을 참고합니다.) 중요 정보 중요 정보의 기준을 먼저 정해야 한다. 중요 정보는 우선 개인 정보와 같이 법적으로 강제되는 항목들을 반드시 포함해야 하고, 보안등급 분석을 통해 중요 정보를 구분하여 해당 정보의 관리 정책을 수립해야 한다. 네트워크를 통한 중요 정보 노출 - 중요 정보는 서버를 떠나지 않도록 해야 한다. - 부득이하게 전송해야 하는 경우, 반드시 암호화가 필요하다. 중요 정보 암호화 중요 정보를 암호화하기 위해 정책을 수립해두어야 하고, 암호화 구현 시 안전한 키 관리를 해야 한다. 또한 관리되는 데이터에 따라 적절한 암호화 모듈을 적용해야 하고, 각 알고리즘에서 사용되는 암호키의 ..
이전 글에서 CSS에서 변수 사용하는 것을 다룬 적이 있다. 글에서 사용한 방법은 다른 CSS 파일에서 변수를 가져다가 사용할 수 있게 된다. 오늘 포스팅에서는 자바 스크립트 파일에서 사용하는 것에 대해서 소개하고, 타입 스크립트일 경우에는 모듈을 포함하는 걸 추가로 작성하려고 한다. 과정을 요약하면 CSS에서 변수를 export하고, JS/TS 파일에서 import하여 사용하는 간단한 과정이다. CSS에서 변수 선언 및 export하기 첫 번째로는 CSS에서 변수를 정의한 후에, export를 해주어야 한다. 다음과 같이 사용하면 된다. $theme-colors: ( 'someColor': #000, 'anotherColor': #FFF, ); :root { @each $key, $value in $t..
이전 글에서도 몇 번 언급했지만 Vue에서 class 형태로 컴포넌트를 정의하기 위해, vue-class-component를 주료 이용한다(공식 사이트에서도 언급한다). 일반적인 Vue.extend로 사용하는 것과 기능은 같지만 Watch, Prop 등의 사용법이 약간 달라서 헤매는데, 컴포넌트 내부 네비게이션 가드를 사용할 때도 사용법이 조금 다르다. 네비게이션 가드를 통해서 라우터 전후의 이벤트를 정의해줄 수 있다. 추가적으로 컴포넌트 내부에서 사용하는 훅은 다음과 같다. beforeRouteEnter beforeRouteUpdate (2.2 버전에 추가) beforeRouteLeave 메소드명이 명확해서, 사용하기엔 무리가 없으나 vue-class-component를 사용할 경우에는 미리 정의가 필..
윈도우 환경에서 PowerShell 스크립트를 사용할 때, 한글 깨짐이 발생하는 경우가 있다. 인코딩 문제로 발생되는 이슈인데, PowerShell CLI에서는 보통은 다음과 같이 처리하면 된다. $env:LC_ALL='C.UTF-8' 이렇게 입력하면 보통은 해결이 된다. 하지만 ps1로 스크립트를 작성해서 사용할 경우에는, PowerShell 환경에 값을 넣어줄 수가 없다. 스크립트는 어디에서나 이용될 수 있기 때문이다. 이럴 때에는 파일 저장 시에 'UTF-8 With BOM' 형식으로 저장해주면 된다. 리눅스 환경에서는 주로 BOM을 사용하지 않기 때문에 VS Code 등 편집기에서 주로 기본으로 UTF-8로 저장된다. 윈도우 환경에서는 BOM을 사용하는 것이 한글 인코딩에 잘 동작한다. VS Co..
(아이패드에 필기가 있었는데, 아이패드가 충전하다가 망가지는 바람에 소실되어, 이후 글은 따로 저장해둔 요약본을 참고합니다.) 파라미터 변조의 개념과 취약점 파라미터는 클라이언트에서 서버로 작업을 요청할 때 이라는 것을 정의하기 위해 전달하는 변수 값 이미 정해진 값이거나 입력된 값 서버 측에서 사용자가 전송하는 파라미터 값에 대한 검증이 없으면, 허가되지 않은 작업이 수행될 수 있음 이전 글에서 다루었던 것들을 비롯하여, 실제 코드가 실행될 때 파라미터를 대입하여 실행하게 되는데, 이 때 잘못된 정보를 가진 파라미터로 실행되면 위험할 수 있다. 타입 체크를 하거나, 위험한 것은 정규식으로 걸러내는 등의 조치를 취해야 한다. 특히, 서버와 클라이언트를 같이 개발할 때, 클라이언트(프론트엔드) 단에서 접근..
(아이패드에 필기가 있었는데, 아이패드가 충전하다가 망가지는 바람에 소실되어, 이후 글은 따로 저장해둔 요약본을 참고합니다.) 기본적으로 웹 서비스에는 '인증'이 들어가게 되고, 인증과 권한 관리를 위해 계정 관리가 들어간다. 로그인 프로세스는 암호화되지 않은 페이지에서 수행되지 않도록 해야 한다. 또한, 모든 인증 작업은 SSL 통신으로 이루어져야 하고, 모든 자격 증명은 해쉬(hash) 형태여야 한다. 인증 자체 만큼이나 방어나 관리도 중요한데, 가장 단순하고 많은 공격인 무작위 대입 공격 방지를 위해 로그인 시도 횟수 제한을 두고, 세션 쿠키 최신화 및 폐기 등의 관리 프로세스를 가진다. 탈취 방지도 중요한데, URL에 토큰과 같은 정보를 노출하지 않고, 자격 증명 등을 취약한 수단으로 주고받지 않..
웹 개발을 하다 보면 에러를 상당히 자주 접하게 된다. 에러 코드를 보면 500, 400, 404, 401 등 자주 접하는 코드들은 의미를 바로바로 알게 되지만, 가끔 생소한 경우도 있다. 본인도 개발하다가 411 에러는 처음 봐서 포스팅으로 작성한다. 411 에러는 Length Required로, HTTP 1.1부터 발생하는 에러인데 웬만해서는 기본 헤더에 length가 지정되어 있으므로 나올 일이 많지 않다. 이번에 본인은 curl 요청을 보내는 중에 발생하였다. 해결법은 쉽다. Content-Length를 헤더에 추가해주면 된다. curn -H "Content-Length: 0" http://myurl.com
https://kr.vuejs.org/v2/guide/typescript.html#%ED%94%8C%EB%9F%AC%EA%B7%B8%EC%9D%B8%EA%B3%BC-%ED%95%A8%EA%BB%98-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%ED%83%80%EC%9E%85-%ED%99%95%EC%9E%A5 TypeScript 지원 — Vue.js Vue.js - 프로그레시브 자바스크립트 프레임워크 kr.vuejs.org Vue 3.0부터는 아예 TypeScript를 지원하지만, Vue 2.0도 공식 가이드 등에서 TypeScript 사용을 지원하고 있다. Vue를 사용하다 보면, 플러그인을 Vue.use로 포함하고, 전역적으로 Vue.plugin..