-
Flask – SQLAlchemy 설치 및 사용법
설치 및 설정 관련 패키지 설치 flask-migrate – Flask 웹 프레임워크에서 ORM을 사용할 수 있도록 해주는 모듈 pymysql – MySQL을 Python에서 사용할 수 있도록 해주는 모듈 초기 선언 및 설정 flask DB 관련 주요 Command 정리 (flask db –help) 및 관련 에러 명령 의미 branches 현재 브랜치의 지점을 보여줍니다 current 각 DB의 현재 형상을 보여줍니다 downgrade DB를 이전 버전으로 변경 upgrade DB를 최신 버전으로 변경 edit 형상 파일 수정 heads Show current available heads in the script directory history 변경내역 조회 init 새로운 마이그레이션 생성 list-templates List available templates merge 두 형상 파일 병합 migrate 형상 파일 자동 생성 revision 형상 파일 생성 show Show the revision denoted by the…
-
PHP – 입출력 및 변환 함수 정리
입출력 함수 echo – 문자열 출력 print – echo와 비슷, 문자열 출력 printf 형식화한 문자열을 출력 sprintf 형식화한 문자열을 반환 형태 설명 예시 d or i 부호 있는 십진수 392 u 부호 없는 십진수 7235 o 부호 없는 8진수 610 x 부호 없는 16진수 7fa X 부호 없는 16진수(대문자) 7FA f 10진수 부동 소수점, 소문자 392.65 F 10진수 부동 소수점, 대문자 392.65 e 수학 표기법 (가수/지수), 소문자 3.9265e+2 E 수학 표기법 (가수/지수), 대문자 3.9265E+2 a 16진수 부동 소수점, 소문자 -0xc.90fep-2 A 16진수 부동 소수점, 대문자 -0XC.90FEP-2 c 문자 a s 문자열 sample print_r 문자열, 숫자, 배열, 객체 등의 변수의 값을 인쇄 var_dump – 데이터 타입 출력 변환 함수 json_encode 배열 및 stdClass 객체를…
-
PHP – XSS 관련 패키지 (AntiXSS)
AntiXSS 패키지란? AntiXSS 패키지는 문자 내에서 스크립트를 제거 및 변환해주는 PHP 패키지로 사이트 간 스크립팅 방지를 위해 사용할 수 있습니다. 패키지 설치 스크립트 필터 inline style 구문 확인 removeEvilAttributes – style 구문은 허용하며 내부 스크립트만 제거 xss 공격 포함 여부 isXssFound – xss 공격 포함 여부 반환 (True/False) iframe 태그 허용 removeEvilHtmlTags – 함수에 매개변수로 태그를 넣으면 해당 태그는 html 태그로서 동작 참고 자료 github anti-xss
-
Python – XSS 관련 패키지 (MarkupSafe)
MarkupSafe 패키지란? MarkupSafe 패키지는 문자 내에서 스크립트를 메타 데이터로 변환해주는 Python 패키지로 XSS (사이트 간 스크립팅) 공격을 방지할 수 있는 패키지입니다. 패키지 설치 Markup 들어오는 인자 값만 이스케이프 할 수 있습니다. escape 내부의 문자열을 이스케이프 해줍니다. 참고 자료 MarkupSafe
-
DB – RDBMS VS NoSQL
DataBase 데이터를 구조화하여 체계적으로 저장한 데이터의 집합체 DBMS 사용자와 데이터베이스 사이의 상호작용을 도와 정보를 삽입, 삭제, 갱신할 수 있고 사용자의 권한 부여를 하는 등 데이터베이스를 관리하는 역할의 소프트웨어 RDBMS 특징 관계형 DBMS라 불리며 SQL을 통해 접근하여 스키마를 통해 데이터 구조를 저장하고 테이블에 데이터를 저장하는 소프트웨어를 말합니다. SQL RDBMS의 데이터를 관리하기 위해 설계된 프로그래밍 언어 스키마 (Schema) 데이터베이스의 자료 구조로 표현 방법과 자료 간의 관계를 SQL 형식 언어로 정의한 구조 테이블 (Table) 데이터 저장 형태 NoSQL 특징 NoSQL (Not Only SQL)은 의미 그대로 SQL이 아닌 다른 저장 기술을 의미합니다. SQL를 통한 접근 방식을 취하는 RDBMS의 반대에 속하는 여러 방식들이라고 볼 수 있습니다. Key-Value 데이터 타입이 제목과 같이 Key-Value 구조로 단순한 형태로 보입니다.Key와…
-
Flask – 암호화 해시 (Cryptographic Hash)
암호화 해시란? 해시 함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수로 암호화 해시는 매핑된 값으로부터 원래의 입력 값과의 관계를 찾기 어려운 성질을 가집니다. Flask에서 지원하는 암호화 해시 패키지는 대표적으로 아래와 같습니다. werkzeug bcrypt bcrypt 패키지 설치 bcrypt의 경우 werkzeug와 달리 별도의 패키지 설치가 필요합니다. generate_password_hash 복호화 데이터 암호화 진행 check_password_hash (암호화 데이터, 복호화 데이터) 두 대상의 일치 여부 return 값 – boolean 참고 자료 Flask – Bcrypt 암호화
-
Flask – Request (Hook, Context)
Request Hook Request Hook 이란? 통신을 주고 받을 때 API를 통해 요청 및 응답을 하게 됩니다.이 때 requset hook는 요청 단계의 생명 주기에서 각 단계별 처리를 할 수 있게 해줍니다. before_first_request 최초로 페이지 요청 전에만 실행 before_request 페이지 요청 전에 실행 after_request 페이지 요청 후에 실행 teardown_request 페이지 요청 종료시 실행 teardown_appcontext 페이지 어플리케이션 컨텍스트 제거시 실행 Request Context Request Context 란? request 시 관련 정보를 받는 용도 Application Context g (global) request 내에서만 값이 유효한 스레드 로컬 변수이므로 각 리퀘스트 내의 전역 변수 current_app 활성화된 어플리케이션을 위한 인스턴스 app인스턴스를 import하지 않고도, app의 config 정보를 조회 가능 참고 자료 Flask – 어플리케이션 컨텍스트 Flask – 리퀘스트 컨텍스트
-
WordPress – BackWPup backup 플러그인 사용해보기
소개 서비스 운영에 있어 백업은 정말정말정말! 중요합니다. 서버가 공격 당하거나 모종의 작업, 시스템 동작의 오류 등 다양한 이유로 서버에 이상이 생겼을 때 백업만큼 든든한게 없죠! 물론 백업은 복구가 불가능한 상황에 사용되는 최후의 수단이지만요 😁 (만약에… 백업할 데이터가 없다면.. 후… 정말 상상만 해도 끔찍하네요 😨🥶😨🥶)WordPress 는 이런 상황을 대비할 수 있는 다양한 Backup 관련 플러그인들이 있습니다.오늘은 WordPress 백업 플러그인 중 하나인 BackWPup에 대해 알아보겠습니다. 먼저 플러그인 검색에서 BackWPup을 검색해서 설치 후 활성화 해보도록 할게요 활성화가 되었다면 좌측 네비게이션에 아래 이미지와 같이 플러그인이 하나 추가가 될거에요! Add new jop 백업 작업 등록하기 백업 작업 기본 설정 항목 해당 작업명 (Jop Name) 백업 목록 지정 (Job Tasks) 기본적으로 DB뿐만 아니라 파일과 설치된 플러그인…
-
JavaScript – IE, Safari Browser new date invalid date error
Safari browser와 IE 브라우저의 경우 JavaScript에서 date 메서드로 yyyy-mm-dd 형태를 포맷시 invalid date error 발생을 확인할 수 있습니다.date 메서드의 경우 yyyy-mm-dd 형태의 포맷을 지원하지 않기 때문에 발생하는 원인으로 아래 방법으로 해결할 수 있습니다. 해결방법 방법1 date 메서드에서 지원하는 공식적인 사용법을 사용합니다. 방법2 – 문자를 대체해줍니다 방법3 moment.js 라이브러리를 사용하여 date 메서드의 일관성을 성립할 수 있습니다.
-
PHP – 환경설정 파일 정리
php.ini 파일이란? php 실행시 환경변수를 통해 필요한 설정이 가능한 파일 파일 위치 – 일반적으로 /etc/php/{version}/php.ini short_open_tag <?php를 <?로 생략 display_error 에러 로그 출력 여부 max_execution_time 페이지 실행 시간 설정 시간 초과시 Gateway time out을 볼 수 있음 date.timezone 타임존 설정 세션 관련 – PHP (Session 메뉴얼) save_handler 세션 저장 방식 지정 files, save_path 세션 저장 경로 name 세션ID 변수명 지정 ex) $PHPSESSID use_cookies 쿠키와 함께 세션 사용 여부 auto_start php 시작과 함께 session_start() 호출 여부 기본값 0 세션 정리 gc_maxlifetime – 일정 시간 동작이 없을 경우 세션 제거 gc_probability / gc_divisor – gc_divisor만큼의 액세스 중 gc_probability 만큼의 횟수로 세션 제거 데이터 전송 관련 file_uploads 파일 업로드 허용 여부 max_input_time HTTP…