본문 바로가기
반응형

IT/Knowledge211

XPath 인젝션 취약점 XPATH 인젝션 취약점이란? -> 코드 : XI -> 점검항목 : XPath -> 개요 : 데이터베이스와 연동된 웹 어플리케이션에서 XPath및 XQuery 질의문에 대한 필터링이 제대로 이루어지지 않을 경우 공격자가 입력이 가능한 폼에 조작된 질의문을 삽입해서 인증 우회를 통해 XML 문서로부터 인가되지 않은 데이터를 열람할수 있는 취약점 결국 injection의 한 종류이다. 가장 많이 알려진 sql injection 과의 차이점은 사용되는 문법에서 차이가 있다. sql injection은 input값에 들어가는 값이 쿼리로 이동을 하지만 xPath injection은 코드로 이동을 해서 동작을 한다. xpath injection에 대한 사이트이다. https://cheatsheet.haax.fr/.. 2023. 9. 25.
SSH 로그인 RSA 방식 ssh에 대해서는 아래 참고 포스팅을 참고 바란다. 별도의 설정을 하지 않으면 기본적으로 서버에 접근하기 위한 ID와 PW로 접근을 한다. 하지만 특정 상황이나 외부 호출 해야할 경우 등 비밀번호를 입력하는 절차를 생략하고 싶은 경우 ssh key를 통해서 RSA방식으로 셋팅을 한다. 그러고 나면 서버에 비밀번호 없이 접근이 가능하다. 방법은 간단하다. 접근시도 하는 피시를 클라이언트, 접근 당하는 본 서버의 피시를 타겟 서버라고 칭할것이다. 1. 일단 사용자는 클라이언트 피시에서 접속하기 위한 키를 만들어야한다. ssh-keygen -t rsa 를 사용하면 rsa 방식으로 public 키와 private 키가 생성이 된다. (.ssh폴더 내에 id_rsa, id_rsa.pub 파일 두개가 생긴다.) 2.. 2023. 9. 13.
redis data type 종류 redis에 대한 내용은 아래 참고 포스팅을 참고 바란다. redis에 데이터를 저장할때는 총 6가지의 data Type이 존재한다. 아래 표와 같다. 타입 특징 기타 Strings 1. value에 문자 숫자 등 저장 2. 문자 숫자 구분이없다. Lists 1. value에 리스트를 저장 lrange 값을 조회 하는데 -1은 모두 rpop 를 사용하여 queue 구현 가능 Sets 1. value에 set을 저장 list 와 set의 차이와 동일(참고 포스팅 참고) Hashes 1. key/value 목록을 저장한다. Sorted Sets 1. value를 set과 같은 형태로 저장. 2. set과 비슷하나 score와 함께 저장되어 score 기준으로 정렬된다. Bitmaps 1. bits 값을 저장.. 2023. 9. 11.
UUID란?(Universally Unique Identifier) 네트워크에서 고유성이 보장되는 id를 만들기 위한 규약이다. 네트워크 상에서 서로 모르는 개체들을 식별하고 구별하기 위해서는 각각의 고유한 이름이 필요하다. 이 이름은 고유성(유일성)이 매우 중요하다. 같은 이름을 갖는 개체가 존재한다면 구별이 불가능해 지기 때문이다. 고유성을 완벽하게 보장하려면 중앙관리시스템이 있어서 일련번호를 부여해 주면 간단하지만 동시다발적이고 독립적으로 개발되고 있는 시스템들의 경우 중앙관리시스템은 불가능하다. 개발주체가 스스로 이름을 짓도록 하되 고유성을 충족할 수 있는 방법이 필요하다. 이를 위하여 탄생한 것이 범용고유식별자(UUID)이며 국제기구에서 표준으로 정하고 있다. 표준형식은 32개의 16진수로 표현이 되며 총 36개 문자로 된 5개 그룹 하이픈으로 구분하며 레이아웃.. 2023. 9. 1.
APM 이란?(Application Performance Management) 이전 포스팅에서 APM에 대해서 다룬적이 있었다. Apache + Php + Mysql 의 약자로 웹을 기동하기 위한 최소한 필요한 것들의 집합이고, 자세한 내용은 아래 참고 포스팅을 참고 바란다. 이번 포스팅에서의 APM은 좀 다른 APM이다. 먼저 위키백과의 설명으로는 다음과 같다. 애플리케이션 성능 관리 (Application Performance Management): 응용 소프트웨어의 성능과 서비스 이용성을 감시하고 관리하는 데 초점을 둔 시스템 관리 원칙 이번 포스팅에서는 간단하게 추려서 용어 설명 정도만 기술할 것이다. 모니터링 시스템을 사용할 경우 자주 마주하게 되는 APM이다. 데브옵스들이나 엔지니어 들은 APM 툴을 이용해서 퍼포먼스를 쉽게 찾을수 있고 문제 해결을 신속하게 할수 있다... 2023. 8. 31.
의사코드(pseudocode)란? 의사코드라고도 하고 영어를 읽으면 발음이 슈도 코드 라고 하는데 이 슈도 코드란. 말 그대로 의사대로 코드를 적은 것이다. 나무 위키 정의는 다음과 같다. 알고리즘을 표현하는 방법 중 하나로, 일반적으로는 자연어[2]를 이용해 만든 문장을 프로그래밍 언어와 유사한 형식으로 배치한 코드를 뜻한다. 용도는 미술의 스케치와 같다. https://namu.wiki/w/%EC%9D%98%EC%82%AC%EC%BD%94%EB%93%9C 의사코드 - 나무위키 이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권 namu.wiki 실제 자바나 파이선 등에 맞는 문.. 2023. 8. 27.
Daemon의 방식 Daemon에 대해서는 예전에 Batch와 비교하는 글을 남겨둔 적이 있다. 자세한 내용은 참고 포스팅 참고 바란다. Daemom은 크게 두가지 방식이 있다. Standalone방식과 inetd방식이다. 둘의 차이에 대해서 다뤄볼 것이다. Standalone 방식 데몬 데몬이 OS 부팅과 동시에 실행이 되면서 항상 백그라운드에서 대기 하다가 해당 서비스 요청이 생기면 즉각 처리 하는것 inetd 방식 데몬 빠른처리가 필요는 없고, 빈번하게 호출이 되지 않는 서비스의 경우 sleep상태로 존재하고 클라이언트로부터 요청이 들어오면 슈퍼데몬인 xinetd 데몬에 의해 wake up 되어 서비스 수행후 다시 sleep 상태로 전환 xinetd(슈퍼데몬)이란. standalone 방식으로 존재하며 inetd 방식.. 2023. 8. 25.
Multi-thread 쓰레드에 대해서 사용을 할때 멀티 쓰레드에 대한 내용을 다뤄보려고 한다. Thread 에 대한 기본적인 내용은 아래 참고 포스팅 참고 바란다. 멀티 쓰레딩이란 아래 그림을 보면 이해가 쉬울 것이다. 왼쪽 싱글 스레드에 비해 오른쪽 여러개의 멀티 쓰레드는 병행 처리를 하면서 스레드의 부하를 줄여주기도 하고 경우에 따라서는 더 빠른 속도를 나타내기도 한다. 장점 응답성 프로그램의 일부분(스레드)이 중단되거나 긴 작업을 수행하더라도 프로그램의 수행이 계속 되어 사용자에 대한 응답성이 증가 ex) 멀티 스레드가 적용된 웹 브라우저 프로그램에서 하나의 스레드가 이미지 파일을 로드하고 있는 동안, 다른 스레드에서 사용자와 상호작용 가능 경제성 프로세스 내 자원들과 메모리를 공유하기 때문에 메모리 공간과 시스템 자원.. 2023. 8. 10.
CircuitBreaker 란? 서킷 브레이커는 해석을 그대로 하면 누전 차단기 라는 뜻이다. 누전 차단기의 역할은 과부하가 걸렸다면 차단을 해버리는데, 통신에서도 이와같이 특정 서비스로 쓰레드가 몰리게 되면 잠시 차단을 해두는 기능이다. A라는 서버 내에 MSA 로 묶여서 a-1(주문), a-2(정산), a-3(상품) 이라는 각각 다른 기능을 하는 서버가 있다고 가정하자. 여기서 a-2(정산) 라는 서버에 잠시 장애가 생기게 되면 a-1(주문) ,a-2(정산), a-3(상품) 서버는 서로 상호 작용을 하는데 a-2 에서 머무르다보니 서버 전체적으로 부하가 심해진다. 이럴경우 미리 설정해둔 서킷브레이커를 통해서 잠시 대기했다가 장애가 풀리게 되면 트랜잭션을 이어서 진행하는것이다. 구성은 다음과 같다. 1. 외부 API 통신 시도 2. .. 2023. 8. 8.
반응형