분류 전체보기 223

(ubuntu) github repository 을 ssh 로 액세스

1. git 을 인스톨sudo apt install git 2. 유저설정git config --global user.name 사용자이름git config --global user.email 사용자 이메일 주소 3. ssh-key 공개키 작성ssh-keygen -t rsa -C "메일 주소" 디폴트 옵션으로 작성하면 아래의 폴더에 ~/.ssh/id_rsa.pub 가 생성 4. 공개키를 클립보드에 복사일단 클립보드 복사 툴을 설치sudo apt update sudo apt install xclip 공개키 복사cat ~/.ssh/id_rsa.pub | xclip -selection clipboard 5. 4에서 복사한 공개키를 자신의 github 에 설정github.com 에 로그인settings >> SS..

CSRF(일부XSS포함) 방지책 (ReactJS + Flask)

🛡️ Flask API 서버: HttpOnly와 CSRF 토큰으로 XSS/CSRF 동시에 방어하기React와 같은 프론트엔드와 연동되는 Flask API 서버에서 가장 흔한 두 가지 웹 보안 위협, XSS(Cross-Site Scripting)와 CSRF(Cross-Site Request Forgery)를 어떻게 효과적으로 방어하는지 코드와 함께 설명합니다.우리가 살펴본 Flask 코드는 'Double Submit Cookie' 또는 'Synchronizer Token Pattern'을 기반으로 하며, 강력한 쿠키 옵션을 활용하여 보안을 구축합니다.1. 🔑 XSS 방어의 핵심: HttpOnly 쿠키XSS 공격의 주요 목적은 사용자 브라우저에 삽입된 악성 JavaScript를 통해 세션 쿠키를 탈취하는..

Web Security 2025.12.02

XSS 방지책 (Express.js)

🛡️ Express.js (API Only) XSS 방지 대책1. 📝 입력 데이터 정제 (Input Sanitization)사용자 입력(JSON, 쿼리 파라미터 등)을 데이터베이스에 저장하거나 응답으로 보내기 전에 악성 HTML이나 스크립트 코드를 제거합니다.✅ 샘플 코드: dompurify와 jsdom을 사용한 정제Express 환경에서는 브라우저 환경에서 사용되는 **dompurify**를 서버 측에서 실행하기 위해 **jsdom**과 함께 사용하거나, **sanitize-html**과 같은 라이브러리를 사용합니다. 여기서는 널리 사용되는 **sanitize-html**을 사용합니다.Bash # 💡 라이브러리 설치npm install sanitize-html expressJavaScript co..

Web Security 2025.12.02

XSS 방지책 (Flask)

🛡️ Flask (CRUD API Only) XSS 방지 대책API 서버에서 가장 중요한 XSS 방지책은 클라이언트 측에서 예상치 못한 방법으로 스크립트가 실행되는 것을 막는 것입니다.1. 📝 입력 데이터 정제 (Input Sanitization)Flask가 사용자로부터 받은 데이터를 데이터베이스에 저장하기 전, 또는 응답으로 보내기 전에 잠재적인 악성 HTML/스크립트 코드를 제거하는 과정입니다.✅ 샘플 코드: bleach 라이브러리 사용파이썬에서는 bleach와 같은 라이브러리를 사용하여 사용자 입력에서 HTML 태그와 속성을 안전하게 제거할 수 있습니다.Bash # 💡 라이브러리 설치pip install bleachPython import bleachfrom flask import Flask,..

Web Security 2025.12.02

XSS 방지책 (ReactJS)

1. 🛑 dangerouslySetInnerHTML의 위험성React의 자동 이스케이프 기능을 무력화시키고 사용자 입력에 대한 XSS 공격을 허용하는 코드입니다.JavaScript // 사용자 입력(악성 스크립트)이라고 가정const userInput = ""; function RiskyComponent() { return ( // ❌ 경고: 자동 이스케이프가 비활성화되어 스크립트가 실행됩니다. );}2. ✅ 안전한 대안: DOMPurify를 사용한 HTML 정제신뢰할 수 없는 HTML을 렌더링해야 할 경우, DOMPurify 라이브러리를 사용하여 **악성 코드를 제거(정제/Sanitize)**한 후 삽입해야 합니다.Bash # 💡 DOMPurify 설치 (React 프로젝트에서)np..

Web Security 2025.12.02

CSRF (Cross-Site Request Forgery) attack

🔐 CSRF 공격이란?CSRF(Cross-Site Request Forgery, 사이트 간 요청 위조)는 사용자가 원하지 않는 요청을 자신의 계정으로 보내게 만드는 공격입니다.조금 어렵게 들리지만, 한 문장으로 정리하면 이렇습니다:“내 로그인 상태를 악용해서, 공격자가 시킨 행동을 내가 한 것처럼 서버에 보내는 공격”예를 들어, 내가 은행 사이트에 로그인한 상태라면, 공격자는 나를 속여 내 계정으로 돈을 보내거나, 비밀번호를 바꾸는 요청을 자동으로 실행시킬 수 있습니다.💥 실제로 어떻게 공격이 일어날까? (간단 예시)📌 상황 설정당신은 A 은행 사이트에 로그인한 상태새 탭에서 뉴스 사이트를 열어 기사 하나를 클릭하지만 그 뉴스 사이트 안에는 공격자가 몰래 심어놓은 HTML 코드가 들어 있음📌 공격..

Web Security 2025.12.02

크로스 사이트 스크립팅 (Cross-Site Scripting, XSS)

🔥 크로스 사이트 스크립팅(XSS) 완전 이해하기크로스 사이트 스크립팅(Cross-Site Scripting, XSS)은공격자가 신뢰할 수 있는 웹사이트에 악성 스크립트를 삽입하고, 이를 다른 사용자의 브라우저에서 실행시키는 웹 보안 취약점입니다.이를 통해 공격자는 다음과 같은 행동을 할 수 있습니다:사용자의 세션 쿠키 탈취계정 권한을 가로채거나 개인 정보 수집웹 페이지 내용을 변경악성 사이트로 자동 리디렉션등, 사용자를 속에서 보이지 않게 공격할 수 있는 매우 위험한 방식입니다.🔎 XSS 공격의 종류XSS 공격은 모두 “브라우저에서 악성 JavaScript를 실행한다”는 공통 목표가 있습니다.하지만 그 스크립트가 어디에서 기원하는지에 따라 종류가 달라집니다.아래 세 가지가 가장 대표적입니다 👇1️..

Web Security 2025.11.30

50 American Idioms in 60 Minutes

https://youtu.be/FVQChiYcVXU?si=DhhuOPigkUenSHca 1. twist (someone's) arm억지로 설득하다A: Come on, join us tonight!B: Fine, you twisted my arm.2. up (someone's) alley취향에 딱 맞다A: This movie is right up your alley.B: Really? Then I’ll watch it.3. under the weather몸이 좀 안 좋다A: You look tired.B: Yeah, I’m feeling a bit under the weather.4. make ends meet생계를 유지하다A: How’s the new job?B: It’s okay. Just trying..

youtube english 2025.11.25

SQL Injection (SQLi)

SQL 인젝션은 가장 오래되었으면서도 여전히 널리 발생하는 보안 취약점 중 하나입니다. 사용자가 입력하는 값에 악의적인 SQL 코드를 주입해 웹 애플리케이션의 데이터베이스 동작을 조작할 때 발생하며, 이를 통해 사용자 이름·비밀번호·금융 기록 같은 민감한 정보에 무단으로 접근할 수 있습니다. 더 나아가 데이터베이스의 내용을 수정하거나 삭제하는 등 시스템을 완전히 제어할 수 있는 심각한 결과를 초래할 수 있습니다. SQL 인젝션은 어떻게 일어나나?SQL 인젝션은 사용자 입력을 제대로 정제하지 않을 때 발생합니다. 웹 애플리케이션이 사용자로부터 받은 값을 검증·바인딩하지 않고 그대로 SQL 쿼리에 포함하면, 공격자는 그 입력값을 조작해 쿼리의 구조 자체를 바꿀 수 있습니다. 결과적으로 원하지 않는 조건이 추..

Web Security 2025.10.30

Color Transform

이미지의 각 픽셀에 들어있는 R, G, B 값을 새로운 R′, G′, B′ 값으로 변환하려면 Color Transform(색 변환) 기법을 고려할 수 있습니다.OpenCV는 내부적으로 BGR 순서를 사용하므로 예제를 읽을 때 채널 순서에 주의하세요.예시(스캔된 채널의 최대값이 다음과 같을 때 — OpenCV 배열은 BGR 순서):R 채널 최댓값 = (10, 10, 230) G 채널 최댓값 = (10, 230, 10) B 채널 최댓값 = (230, 10, 10) 목표: 스펙트럼(명도·색분포)을 넓혀 대비를 개선하고 싶다면, 각 채널의 타겟 값을 다음처럼 조정할 수 있습니다.목표 R = (1, 1, 250) 목표 G = (1, 250, 1) 목표 B = (250, 1, 1) 이렇게 채널별로 값을 재배치..

opencv 2025.10.30