본문 바로가기

전체 글305

multipart boundary 에 사용가능한 문자(feat. rfc 1521) http를 사용하다보면 multipart를 볼 때가 있죠. 이 때 boundary의 정의는 어떻게 될까요?  boundary의 정의는 아래와 같습니다.  boundary := 0*69 bcharsnospacebchars := bcharsnospace / " "bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" / "+" / "_" / "," / "-" / "." / "/" / ":" / "=" / "?"  최대 70글자까지 쓸 수 있으며,마지막은 space가 올 수 없습니다.bchars (boundary의 첫 0~69자는 공백 포함 가능): 숫자: 0-9 알파벳: A-Z, a-z 특수 문자: ', (, ), +, _, ,, -, ., /, :, =, ? 공백 (spac.. 2024. 10. 11.
SSRF(Server-Side Request Forgery) LFI(Local File Inclusion) 비교 1. SSRF (Server-Side Request Forgery)정의SSRF는 공격자가 서버로 하여금 악의적인 요청을 외부 또는 내부 네트워크 리소스에 보내도록 유도하는 취약점입니다. 이 취약점은 주로 서버가 사용자의 입력을 신뢰하여 다른 리소스에 HTTP 요청을 보내는 기능을 가지고 있을 때 발생합니다.공격 방식공격자는 서버가 임의의 URL 또는 IP 주소로 요청을 보낼 수 있도록 조작합니다. 이를 통해 공격자는 내부 네트워크나 외부 시스템에 접근할 수 있습니다.주요 특징내부 네트워크로의 접근: 공격자가 외부에서 직접 접근할 수 없는 내부 시스템이나 네트워크에 서버를 이용해 접근할 수 있습니다.외부 시스템 공격: 공격자는 서버를 중간자로 사용해 외부 서버에 악의적인 요청을 보낼 수도 있습니다.HTTP.. 2024. 9. 25.
Warning Message 삭제방법(missing-braces, overloaded-virtual) 컴파일시 깔끔하지 않게 하는건 뭘까요? 바로 Warning Message입니다. 자세히 보면, 버그를 유발할 확률이 높은 것들도 걸러지는데요.이걸 놔두면 깨진창문효과처럼 점점 코드가 난잡해질 수 있습니다. 그럼 어떤 Warning들이 있는지 살펴보고 어떻게 고쳐야할지 알아보겠습니다. warning: suggest braces around initialization of subobject [-Wmissing-braces]문제struct in6_addr ip = {0,};위의 구문은 ipv6를 선언할 때 초기값을 0으로 세팅하려고 하는건데요.이런 Warning이 뜨게 됩니다.warning: suggest braces around initialization of subobject [-Wmissing-brace.. 2024. 9. 2.
온라인으로 sql 문법 확인하는 방법(sqlite, mariadb, postresql, mssql) SQL 문법 확인하려면 직접 다 DB를 설치해야하는 번거로움이 있죠? 이 사이트를 이용하면 여러 DB에 대한 테스트 및 문법 검사를 해볼 수 있습니다. 바로 아래 사이트인데요. SQLiteMariaDBPostreSQLMS SQL 이렇게 지원합니다. 사이트 주소는 아래와 같습니다.https://sqliteonline.com/ SQL Online Compiler - Next gen SQL EditorChart for Data Science SELECT LINE-SELECT ​ LINE-SELECT name as label, cos(id) as cos_c1ab394, sin(id) as sin_cFF0000 FROM demo; AREA-SELECT id as x, id as y FROM demo; BAR-SE.. 2024. 8. 26.
QTextEdit 에 글자 그대로 덮어쓰기/추가하기 방법(append, setText, insertPlainText) QTextEdit 사용방법QTextEdit을 사용하면 크게 2가지로 사용할 수 있습니다. 1. 글자(텍스트) 엎어치기 2. 글자(텍스트) 추가하기 글자(텍스트) 엎어치기말 그대로 텍스트에 문자를 그대로 clear해서 세팅해줍니다. 사용방법은 쉽습니다. setText(내용)# UI 그렸다 치고 self.result_text = QTextEdit() # layout 그렸다 치고 layout.addWidget(self.result_text) result = "test" self.result_text.setText(result) 글자(텍스트) 추가하기지우지 않고 글을 이어서 계속 붙이고 싶을 때가 있겠죠? 이 부분은 두가지 함수가 있습니다.append()쉽게 말하면 글자는 추가되는데 내부적으로 텍스트 끝에 \n.. 2024. 8. 24.
daemon에 gdb로 붙는 두가지 방법(pid, 직접실행) Daemon 디버깅방법gdb를 사용하여 데몬(daemon)을 디버깅하는 방법입니다. 이미 실행 중인 데몬에 gdb를 붙이는 방법이미 실행 중인 데몬 프로세스에 gdb를 붙이는 방법입니다.데몬의 PID(프로세스 ID) 확인: 먼저 디버깅하려는 데몬의 프로세스 ID를 알아야 합니다.ps, pgrep 명령어 등을 사용해 PID를 확인할 수 있습니다.ps -ef | grep your-daemon-name gdb로 프로세스에 연결: 확인한 PID를 이용해 gdb를 실행합니다. 이렇게 하면 실행 중인 프로세스에 gdb가 연결됩니다. 이후 일반적인 gdb 명령어를 사용해 디버깅할 수 있습니다.gdb -p 데몬을 gdb를 통해 직접 실행하는 방법데몬이 실행되기 전에 gdb를 통해 디버깅하는 방법입니다.데몬의 실행 파.. 2024. 8. 23.
git commit 시 끊어졌을 때 해결방법 ('.git/index.lock': File exists.) git commit 을 하는 도중 네트워크가 끊어졌다거나, 부팅된다거나 등등 환경적인 요인으로 인해 실패했을 때재시도를 하면 아래와 같은 메시지가 뜹니다.fatal: Unable to create '.git/index.lock': File exists. 해결방법은 아래와 같습니다.커밋 메시지 파일 확인 및 삭제비정상 종료로 인해 커밋 메시지 파일이 남아 있을 수 있습니다. 이 파일은 보통 .git/COMMIT_EDITMSG 경로에 존재합니다.rm .git/COMMIT_EDITMSGrm .git/COMMIT_EDITMSG​ 이 파일을 삭제한 후 다시 커밋을 시도해봅니다. 그래도 안되면 아래로 넘어갑니다.인덱스 잠금 파일(lock file) 확인 및 삭제Git은 커밋 중에 .git/index.lock 파일을.. 2024. 8. 22.
bashrc 작성 후 적용방법(ls 색깔 변경) 처음 리눅스를 설치해서 ls를 누르면 모두 다 색깔이 똑같은 경험 있으시죠? 이쁘게 색칠해봅시다. vi ~/.bashrc이 파일에 아래와 같이 추가하면 됩니다.# enable color support of ls and also add handy aliasesif [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto.. 2024. 8. 12.
반응형