분류 전체보기 209

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

Transformer (GPT) 가장 쉽게 이해하기 - Part 2

GPT2 - Small 모델의 예 (GPT2 - Small) Multi Block과 하나의 Block 내에서의 Multi-head Attention 아래는 내 나름대로 궁금했던 점들을 해소한 후에 간소하게 정리한 다이어그램이다. 실질적으로는 중간 중간에 세부 처리가 들어가는 경우가 있다. 입력으로 "I am a" 있을 경우 GPT는 다음에 올 가장 적절한 단어(토큰)을 제시해야 한다. ・입력은 토큰으로 분리되고 다시 Embedding으로 768 차원으로 변환된다. (그 후엔 Positioning Embedding은 생략됐다.)・그 후 12개의 Block(GPT2-Small model의 경우)에 전달된다.(Dropout과 Normalization은 생략됐다.)・각 12개의 Block은 학습(Train)에 ..

CrewAi Flows - 개념편

데코레이터@start()kickoff 시 맨 처음 실행되는 메서드위에 데코레이션@listen(method)파라미터로 지정된 method의 실행이 끝나자 마자 실행되는 메세드위에 데코레이션 @listen(or_(metho1, metho2, ...)파라미터로 지정된 메서드가 각각 끝나면 실행되는 메서드 @listen(and_(method1, method2, ...)파라미터로 지정된 메서드들이 모두 끝나야 실행되는 메서드@router(method)@listen 과 같지만 데코레이션된 메서드는 if .. else .. 로 다르게 리턴을 해야한다.그러면 다음 넘겨받는 메서드들은 @listen("결과값1") @listen("결과값2") 등으로 데코레이션 해서 처리. state 조건 로직 라우터 main.py 에서..