나의 성장기 보안/코딩$

Flask에 대하여...

다양한 IT 지식
@2021-06-22 16:03:08

Flask는 파이썬으로 만들어지는 웹 어플리케이션 프레임워크(Web Application Framework)이다.

Django 프레임워크보다 가볍고, 사이즈가 작은 서버부터 큰 서버를 만들 수 있으며, Jinja와 Werkzeug를 포함하고 있다.

 

Werkzeug는 WSGI 유틸리티 이며 WSGI(Web Server Gateway Interface)는 웹 서버 소프트웨어와 파이썬으로 작성된 웹 응용프로그램 간의 표준 인터페이스이다. 표준 인터페이스는 여러 Web Server에서 WSGI를 지원하는 응용 프로그램을 쉽게 사용할 수 있도록 해준다.

즉 WSGI는 웹 서버와 웹 애플리케이션 간의 데이터 교환을 위한 인터페이스의 명세라고 할 수 있다.

 

Werkzeug는 요청, 응답 객체 그리고 다른 utility 함수를 구현하는 WSGI 툴킷이다. WSGI위에 웹 프레임워크를 동작할 수 있게 해준다.

 

Jinja2는 파이썬을 위한 Template Engine이다. Jinja2와 같은 Web Templating System은 동적인 웹 페이지들을 제공하기 위해 어떤 특정 데이터를 템플릿과 결합시켜준다.

 

 

 

 

전자금융기반시설 2021 보안장비 목록 정리

다양한 IT 지식
@2021-04-05 23:14:09

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


Git hub Blog만들기

다양한 IT 지식
@2021-03-15 10:11:03

1. 시작하기 앞서..

Github 블로그의 기본 구조를 파악!

  • 보통 블로그라고 부르지만 실제로 사용하는 서비스의 이름은 'Github Pages'이다. 페이지를 만들고 관리하는 방법은 아래 URL에 잘 설명되어 있다.

docs.github.com/en/github/working-with-github-pages/getting-started-with-github-pages

 

Getting started with GitHub Pages - GitHub Docs

Getting started with GitHub Pages You can set up a basic GitHub Pages site for yourself, your organization, or your project. GitHub Pages is available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repo

docs.github.com

https://pages.github.com/

 

GitHub Pages

Websites for you and your projects, hosted directly from your GitHub repository. Just edit, push, and your changes are live.

pages.github.com

  • Git hub Page는 Github 내에 저장소를 만드는 것으로 시작할 수 있고, 페이지 관련 설정은 저장소 Setting에서 일부 수정할 수 있다.
  • Git hub Page를 작성하고 운영하는 데에 Git hub가 추천하는 도구는 'jekyll'이다. 지킬은 ruby언어로 작성된 Static Site 생성기로, 시본 사용법은 다음 Page에서 확인할 수 있다.

http://jekyllrb-ko.github.io/

 

Jekyll • Simple, blog-aware, static sites

Transform your plain text into static websites and blogs

jekyllrb.com

  • 어떤 언어든, 어떤 도구든, 설명서를 다 읽고 시작하는 것보다 일단 한 번 부딪혀 보는 게 빠른 법이다. 기본정보가 어디에 있는지는 확인했으니, 한 단계씩 블로그를 만들며 익혀 보자

2.  Site Repository 만들기

  • 깃허브 페이지가 들어갈 저장소를 만든다.
    Git hub에 접속하여, 계정 메뉴에서 new repository를 선택한다. 그리고, 저장소를 [username].github.io 형식으로 만든다.

Git Blog Repository 생성

  • 만들어진 저장소에 정해진 형식의 파일을 업로드해 두면, 일정 시간 뒤 Github page기능이 파일을 자동으로 인식하여 페이지에 업데이트 해준다.

2.1. 블로그 테마 찾기

  • Git hub Page에는 다양한 테마를 적용할 수 있다. Github Blog Theme는 jekyll로 만들어져있으며, 이미 만들어진 수 많은 테마를 검색-다운로드 후 자신의 페이지에 적용할 수 있다.
  • 테마 관련 사이트를 살펴보며 자신이 사용하고 싶은 테마를 선택할 수 있다.

http://jekyllthemes.org/

 

Jekyll Themes

 

jekyllthemes.org

https://jekyllthemes.io/free

 

Free Jekyll Themes

A curated directory of the best free Jekyll themes for your blog or website.

jekyllthemes.io

https://jamstackthemes.dev/ssg/jekyll/

 

Jekyll Themes

Browse Jekyll themes, starters and templates.

jamstackthemes.dev

https://jekyll-themes.com/free/

 

Free Jekyll Themes | Jekyll Themes

A collection of some of the best jekyll themes and templates that are free to download. Download free jekyll themes that suit your website, portfolio, resume or company website needs. Search jekyll themes by category and find what you are looking for.

jekyll-themes.com

  • 물론 직접 테마를 만들 수도 있다. 테마 작성 관련 튜토리얼은 다음 페이지를 참조하자.

http://jekyllrb-ko.github.io/docs/step-by-step/01-setup/

 

Setup

Welcome to Jekyll’s step-by-step tutorial. This tutorial takes you from having some front-end web development experience to building your first Jekyll site from scratch without relying on the default gem-based theme.

jekyllrb.com

  • 마음에 드는 테마를 찾았다면, 해당 테마 페이지에 있는 다운로드 링크 또는 github clone을 이용하여 테마파일을 받아온다.

2.2. 테마별 세부사항 적용하기

테마 파일이 올라온 페이지의 README.md 파일, 또는 사용법이 나와있는 부분을 잘 살펴보고 만일 개별 설정을 변경해 줘야 하는 경우가 있는 경우는 변경해준다.

  • 받아온 테마 파일 중에는 _config.yml이 있을 것이다. 해당 파일을 메모장이나 코딩 도구를 이용해 열어 보면, Title이나 설명 등 세부사항을 변경하는 메뉴가 보인다.
  • 원하는 Text를 변경하여 저장해도 좋다. 단, 아직 jekyll을 설치하지 않았다면 변경된 내용을 바로 확인할 수 없을 테니 세세한 커스터마이징은 2장 이후에 진행한다.
  • Github에 올라와 있는 테마의 경우, Remote 기능을 이용하여 테마 내의 다른 파일들을 불러올 수도 있다. 해당 테마가 올라온 Github 저장소에서 _config.yml 파일을 받아와서 리모트 관련 설정을 해주면 된다.
  • 자유로운 테마 변경과 설정을 위해서는, 클론 받은 테마 파일을 직접 이용하는 것을 추천한다.

2.3. Ruby와 jekyll 설치하기

jekyll 테마를 설치하고 수정, 관리하기 위해서는, 먼저 ruby 개발 환경을 Setting해 주어야 한다.

다음 페이지에서 Ruby를 Download받을 수 있다.

https://www.ruby-lang.org/ko/downloads/

 

루비 다운로드

자신이 선호하는 방식으로 최신 루비 배포판을 설치할 수 있습니다. 현재 안정 버전은 3.0.0입니다. 루비 라이센스를 읽어 보세요. 루비를 설치하는 방법 각 주요 플랫폼에서 루비를 설치할 수 있

www.ruby-lang.org

루비 설치가 완료되었다면, 터미널에서 ruby -v 명령어를 입력하여 루비 설치가 성공적으로 잘 되었는지 확인해 본다.

  • Ruby의 버전이 정상적으로 출력되었다면.
    gem install jekyll bundler를 입력하여 jekyll과 bundler를 설치하도록 하자.
  • jekyll, mercenary, bundler 3종의 gem이 설치가 완료되었다면 Github Blog를 설정하기 위한 환경 Setting은 끝났다.

3.1 Bundle 설치하기

  • 테마에 따라 다소 차이가 있지만, 대체로 jekyll 테마 내에는 Build에 필요한 Gemfile이 포함되어 있다.
  • Gemfile은 파일 내에 설정된 각종 플러그인의 의존성을 관리하고, 필요한 경우 설치하거나 업데이트해 주는 ruby bundler의 설정 파일이다.(Maven의 pom.xml과 유사하다.)
  • 테마를 받으면 꼭 보게되는 파일이 몇 가지 있다.
    1. _confug.yml (테마 설정 파일)
    2. Gemfile (Ruby 의존성 설정 파일)
    3. index.html
    4. LICENSE (라이센스, jekyll 테마는 대체로 MIT 라이센스이다.) 등등...
  • Gemfile이 존재하지 않을 경우, bundle init 등의 명령어를 사용하여 초기화와 의존성 설정 과정을 별도로 진행해야 한다. 해당 게시글에서는 다루지 않는다.
  • Gemfile이 잘 보인다면, 터미널에서 파일이 저장되는 경로를 열고 bundle install 명령어를 입력하자. Gemfile에 설정된 각종 플러그인이 설치되는 것을 볼 수 있다. (테마마다 설치되는 요소는 다르다.)

3.2. jekyll 로컬 서버 실행하기

번들 설치가 잘 되었다면, bundle exec jekyll serve 명령어를 입력하여 jekyll 로컬 서버를 구동해 보자.

  • 로컬 서버가 정상적으로 동작하지 않는 경우

    1. 명령어로 jekyll serve만 입력한 Case (Gem:LoadError)
    => 설치되어 있는 ruby 플러그인이 이 페이지를 불러오기 위한 플러그인 Version과 맞지 않아 실행에 실패하는 경우가 있다. 명령어 앞에 bundle exec를 추가해주자.

    2. 불러오려는 파일과 터미널 인코딩이 맞지 않는 경우
    => 윈도우 cml의 경우, chcp 65001명령어를 입력하여 명령 프롬프트를 utf-8 인코딩으로 바꿔 주자.

    3. 파일 경로에 한글이 포함되어 있는 경우 (SyntaxError)
    => 한글이 포함되어 있지 않은 경로로 파일을 이동시켜주자.

 

  • 정상적으로 로컬 서버가 실행되었다면, 드디어 적용된 테마의 형태를 확인할 수 있다. 웹 브라우저에서 127.0.0.1:4000을 입력해 보자

3.3. 블로그 요소 구성하기

3.3.1 _config.yml 수정하기

  • 테마 내에는 사용자가 직접 지정할 수 있는 다양한 요소가 배치되어 있다.
    Ex) 이름, 직책, 설명글, SNS 아이콘 유무, 연결되어 있는 메일 주소 등을 자신이 원하는 대로 커스터마이징할 수 있다.
  • 이러한 블로그 구성을 변경하기 위해서는 _config.yml파일을 수정해야 한다. 메모장이나 코딩 도구로 파일을 열고, 어느 부분을 수정해야 원하는 부분이 영향을 받을지 유추해 보자. 테마 제작자가 작성한 설명서를 참고하는 것이 좋다.

3.3.2 별도의 요소 수정하기

  • 테마마다 조금씩 커스터마이징 가능한 영역이 다르다.
    _config.yml 파일에서 모든 영역을 수정할 수 없는 경우도 많다. 자기 취향껏 테마 레이아웃 일부를 고치고 싶을 때도 있다.
  • 나머지 부분을 마저 수정하기 위해서는, jekyll 테마 내의 다른 파일에서 원하는 부분을 찾을 필요가 있다.
  • 자신이 고치고자 하는 Text가 어느 파일에 저장되어 있는지, 어떤 부분을 수정했을 때 원하는 디자인이 나올지.. 이쪽은 테마마다 천차만별로 설정되어 있어 설명하기 어렵다. 그러나, 다음 링크를 참조하여 사이트 구성, 폴더와 파일 구조를 이해한다면 보다 쉽게 커스터마이징에 성공할 수 있을 것이다.

jekyllrb-ko.github.io/docs/structure/

 

Directory Structure

A basic Jekyll site usually looks something like this:

jekyllrb.com

jekyllrb-ko.github.io/docs/layouts/

 

Layouts

placeholder

jekyllrb.com

  • 포스트를 업로드하거나, 페이지 내부의 다른 탭에 연결할 *.md 파일 또는 *.html을 필요로 하는 테마도 많다. 포스트 작성과 기타 파일 활용법은 위쪽에 게시한 디렉토리 구조 가이드를 참조하자.
  • 페이지 레이아웃이나 디자인 등을 수정하고 싶다면, 주요 구성 파일을 파악한 뒤 css, html 코딩에 도전하면 된다.

4. 게시하기

모든 커스터 마이징을 완료했다면 이제 웹 공간에 띄우면 된다.

  • [Username].Github.io로 생성한 깃허브 저장소에, 모든 테마 파일을 업로드하도록 하자. 병합, 애드, 커밋, 푸쉬
  • 사용자 폴더 경로에 한글이 존재할 경우 문제가 발생할 수 있다.

https://shields.io/

 

Shields.io: Quality metadata badges for open source projects

Love Shields? Please consider donating to sustain our activitiesYour BadgeStaticUsing dash "-" separator/badge/ - - Dashes --→- DashUnderscores __→_ Underscore_ or Space  →  SpaceUsing query string parameters/static/v1?label= &message= &color= Colo

shields.io

  • 깃허브에서 많이 사용하는 아이콘 생성 사이트도 참조해보자.

[전자금융] 거래 정보 재사용 취약점

다양한 IT 지식
@2021-02-26 17:18:54

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


취약한 SSL/TLS 취약점

다양한 IT 지식
@2021-02-26 17:14:46

취약한 HTTPS 알고리즘 이용 취약점

① www.sslabs.com사이트 에서 확인가능 

 

=> 취약한 TLS 1.0 / TLS 1.1 / TLS 1.2 알고리즘 확인가능

 

조치 방안 : TLS 1.2 (TLS 1.3 권고*)이상 사용 및 안전한 알고리즘만 지원가능하도록 설정 권고

 

*참고 자료 : 금융부문 암호기술 활용 가이드(금융보안연구원19.1) 권고

 

-> 양호한 알고리즘 목록 (AES.256 ~ SHA.384)


② Nmap에서 host의 ciphers를 확인하는 명령어
    ssl-enum-ciphers.nse 스크립트를 사용하여 확인가능

 

ssl-enum-ciphers.nse 스크립트

사용 명령어 : nmap --script ssl-enum-cipher.nse [URL] -p [포트번호]

 

조치방안 :

① 취약한 SSL/TLS (TLS 1.0, TLS 1.1) 버전 및 알고리즘을 허용하지 않는다.

② 취약한 TLS 1.2 버전의 알고리즘을 비허용한다.

 

 

HTTP 응답 상태 코드 301, 302에 대해서

다양한 IT 지식
@2021-02-24 11:19:19
  • 개발자들이 제일 많이 보는 응답 상태 코드는 404 / 500응답 코드일 것이다.

이유는?

1. 개발을 하다보면 오류는 필연적이기 때문에 500 Code를 볼 것이고

2. 존재하지 않는 페이지에 접근하면 404 Code를 볼 수 있을 것이다.

 

※ 개발자들도 404 / 500 Error Code는 익숙할 것이다.


301, 302 Code

해당 코드를 한마디로 정의 하면, 리다이렉트(이동)해주는 코드이다.

하지만 301 Code와 302 Code는 차이가 있으니, 이글을 작성하면서 정리한다.

 

301, Permanetntly Moved

- Permanently라는 뜻은 영구히, 영구적이라는 뜻으로

즉 영구적으로 이동한다는 것이다.

요청된 리소스가 영구적으로 이동 페이지로 이동 되었다는 것이다.

 

302, Temporarily Moved

- Temporarily라는 뜻은 임시적, 임시적인이라는 뜻으로

임시적으로 이동했다는 것을 나타낸다.

요청된 리소스가 임시적으로 이동 페이지로 이동되었다는 것이다.

 

무엇이 다른 것일까?

검색엔진의 크롤링하는 페이지가 다르다.

ex) 인터넷 브라우저에서 사용자가 A라는 페이지를 요청했는데, URL이 B라는 페이지로 변경되었다면 해당 페이지는 Redirect가 되었다는 것을 뜻한다.

  • 301리다이렉트를 한다면 검색엔진 크롤링에서는 B라는 페이지에 대해서 수집을 하지만
  • 302 리다이렉트를 한다면, A라는 페이지에 대해서 수집할 것이다.

301, 302 Code는 어떻게 작성하는가? ASP.NET 4.0 이후 버전에서 아래와 같이 사용할 수 있다.

4.0 이전 버전에서는 리디렉션에 헤더를 만들어주거나, IIS 설정을 통해서 구분했다.

리다이렉션 코딩

이동시키기 위한 URL을 넣으면 끝이다.

두번째 매개변수는 옵션값이기 때문에(Response.End()여부이다.) 선택해서 넣으면 된다.

다양한 IT 지식 (14)

[1] [2]