μλ°μ€ν¬λ¦½νΈ 보μμ ν΅μ¬μΈ μλλ°μ€μ μ€ν 컨ν μ€νΈμ μν κ³Ό μΉ μ ν리μΌμ΄μ μ μνμΌλ‘λΆν° 보νΈνλ λ°©λ²μ μμ보μΈμ.
μΉ νλ«νΌ 보μ: μλ°μ€ν¬λ¦½νΈ μλλ°μ€μ μ€ν 컨ν μ€νΈ λΉκ΅
λμμμ΄ μ§ννλ μΉ κ°λ° νκ²½μμ 보μμ 무μλ³΄λ€ μ€μν©λλ€. μΉ μ ν리μΌμ΄μ μ΄ λ°©λν μμ ν΄λΌμ΄μΈνΈ μΈ‘ μ½λμ λ°μ΄ν°λ‘ μ μ λ 볡μ‘ν΄μ§μ λ°λΌ, μ΄λ₯Ό 보νΈνλ 보μ λ©μ»€λμ¦μ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. μλ°μ€ν¬λ¦½νΈ 보μμ λ κ°μ§ κΈ°λ³Έ κ°λ μ μλ°μ€ν¬λ¦½νΈ μλλ°μ€μ μ€ν 컨ν μ€νΈμ λλ€. μ΄ λΈλ‘κ·Έ ν¬μ€νΈμμλ μ΄λ€μ μν , μλ λ°©μ, κ·Έλ¦¬κ³ λ€μν μνμΌλ‘λΆν° μΉ μ ν리μΌμ΄μ μ 보νΈνλ λ° μμ΄ μ΄λ€μ μ€μμ±μ μμΈν μ΄ν΄λ΄ λλ€.
μλ°μ€ν¬λ¦½νΈ μλλ°μ€ μ΄ν΄νκΈ°
μλ°μ€ν¬λ¦½νΈ μλλ°μ€λ μΉ λΈλΌμ°μ μ λ΄μ₯λ μ€μν 보μ λ©μ»€λμ¦μ λλ€. μ΄λ λ³΄νΈ μ₯λ²½ μν μ νμ¬ μΉ νμ΄μ§ λ΄μμ μ€νλλ μλ°μ€ν¬λ¦½νΈ μ½λμ κΈ°λ₯μ μ νν©λλ€. μ΄λ μ μ± μ½λκ° λ―Όκ°ν λ°μ΄ν°μ μ κ·Όνκ±°λ μ¬μ©μμ μμ€ν μ λ°©ν΄νλ κ²μ λ°©μ§νκΈ° μν΄ μ€κ³λμμ΅λλ€.
μΈνλ¦¬κ° μ³μ§ λμ΄ν°λ₯Ό μκ°ν΄λ³΄μΈμ. μμ΄λ€(μλ°μ€ν¬λ¦½νΈ μ½λ)μ μΈν리(μλλ°μ€) μμμ λ μ μμ§λ§, λ°μΌλ‘ λκ° μ£Όλ³ μΈμμ νΌλμ μΌμΌν¬ μλ μμ΅λλ€. μλλ°μ€λ μλ°μ€ν¬λ¦½νΈμ μ κ·Όμ λ€μκ³Ό κ°μ΄ μ νν©λλ€:
- νμΌ μμ€ν μ κ·Ό: μλ°μ€ν¬λ¦½νΈλ μ¬μ©μμ μ»΄ν¨ν°μ μλ νμΌμ μ§μ μ½κ±°λ, μ°κ±°λ, μμ ν μ μμ΅λλ€.
- λ€νΈμν¬ μ κ·Ό (μ νμ ): μλ°μ€ν¬λ¦½νΈκ° λ€νΈμν¬ μμ²(μ: AJAX νΈμΆ)μ ν μλ μμ§λ§, μ΄λ μΌλ°μ μΌλ‘ λμΌ μΆμ² μ μ± (same-origin policy)μ μ μ©μ λ°μ μ½λκ° μμλ λμΌν λλ©μΈμΌλ‘μ ν΅μ λ§μΌλ‘ μ νλ©λλ€.
- μμ€ν API (μ νμ ): μλ°μ€ν¬λ¦½νΈλ μμ€ν 리μμ€μ APIμ λν μ κ·Όμ΄ μ νλμ΄ μμ΄ μ¬μ©μμ μμ€ν μ μμμν¬ μ μλ μμ μ μνν μ μμ΅λλ€.
- κ΅μ°¨ μΆμ² μ κ·Ό: ν μΆμ²μμ μ€νλλ μλ°μ€ν¬λ¦½νΈλ λ€λ₯Έ μΆμ²μ 리μμ€μ μ§μ μ κ·Όν μ μμ΅λλ€ (CORSκ° λͺ μμ μΌλ‘ νμ±νλ κ²½μ° μ μΈ).
μλλ°μ€ νκ²½μ μΉμ¬μ΄νΈμ μ μ± μλ°μ€ν¬λ¦½νΈ μ½λ(μ: ν¬λ‘μ€ μ¬μ΄νΈ μ€ν¬λ¦½ν 곡격μ ν΅ν΄ μ£Όμ λ μ½λ)κ° ν¬ν¨λμ΄ μλλΌλ κ·Έ νΌν΄λ₯Ό ν¬κ² μ νν©λλ€. μ΄λ μ¬μ©μμ λΈλΌμ°μ§ κ²½νμ λ μμ νκ² λ§λλλ€.
μλλ°μ€μ μλ λ°©μ
λΈλΌμ°μ μ μλ°μ€ν¬λ¦½νΈ μμ§(μ: Chromeμ V8, Firefoxμ SpiderMonkey, Safariμ JavaScriptCore)μ΄ μλλ°μ€ μ νμ κ°μ νλ μν μ ν©λλ€. μμ§μ μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό λΆμνμ¬ νμ©λλ μμ κ³Ό νμ©λμ§ μλ μμ μ κ²°μ ν©λλ€. μλ₯Ό λ€μ΄, νμΌ μμ€ν μ μ κ·Όνκ±°λ μΉμΈλμ§ μμ λλ©μΈμ μμ²νλ €λ μλλ λΈλΌμ°μ μ μν΄ μ°¨λ¨λ©λλ€.
μλλ°μ€λ λΈλΌμ°μ μμ€μμ κ°μ λλ―λ‘, μλ°μ€ν¬λ¦½νΈ μ΅μ€νλ‘μμ΄ μ μ± μ½λλ₯Ό μ±κ³΅μ μΌλ‘ μ€ννλλΌλ μ΄λ¬ν λ΄μ¬λ μ ν λ΄μμ μλν©λλ€. μ΄λ λ€μν μΉ κΈ°λ° κ³΅κ²©μΌλ‘λΆν° μ¬μ©μλ₯Ό 보νΈνλ κ°μ₯ ν¨κ³Όμ μΈ λ°©λ² μ€ νλμ λλ€.
μ€ν 컨ν μ€νΈ μμΈν μμ보기
μλ°μ€ν¬λ¦½νΈ μλλ°μ€κ° λμ μμ€μ λ³΄νΈ κ³μΈ΅μ μ 곡νλ λ°λ©΄, μ€ν 컨ν μ€νΈλ ν΄λΉ μλλ°μ€ λ΄μμ μλ°μ€ν¬λ¦½νΈ μ½λκ° μ΄λ»κ² ν΄μλκ³ μ€νλλμ§λ₯Ό κ΄λ¦¬ν©λλ€. μ€ν 컨ν μ€νΈλ μλ°μ€ν¬λ¦½νΈ μ½λκ° μ€νλλ νκ²½μ μ μνλ μΆμμ μΈ κ°λ μ λλ€. μ΄λ μ½λμμ μ¬μ©ν μ μλ λ³μ, ν¨μ λ° κΈ°ν 리μμ€λ₯Ό μΆμ ν©λλ€.
μλ°μ€ν¬λ¦½νΈ μ½λκ° μ€νλ λλ§λ€ μ€ν 컨ν μ€νΈκ° μμ±λ©λλ€. μ€ν 컨ν μ€νΈμλ μ£Όλ‘ λ κ°μ§ μ νμ΄ μμ΅λλ€:
- μ μ μ€ν 컨ν μ€νΈ: μλ°μ€ν¬λ¦½νΈ μμ§μ΄ μμλ λ μμ±λλ κΈ°λ³Έ 컨ν μ€νΈμ λλ€. μ¬κΈ°μλ μ μ λ³μ, ν¨μ μΈλΆμμ μ μλ ν¨μ, κ·Έλ¦¬κ³ `window` κ°μ²΄(λΈλΌμ°μ νκ²½μμ)κ° ν¬ν¨λ©λλ€.
- ν¨μ μ€ν 컨ν μ€νΈ: ν¨μκ° νΈμΆλ λλ§λ€ μλ‘μ΄ μ€ν 컨ν μ€νΈκ° μμ±λ©λλ€. μ΄ μ»¨ν μ€νΈλ ν¨μμ μ§μ λ³μ, λ§€κ°λ³μ, κ·Έλ¦¬κ³ `this` ν€μλ(ν¨μ νΈμΆμ 컨ν μ€νΈλ₯Ό μ°Έμ‘°)λ₯Ό μ μ₯ν©λλ€.
μ€ν 컨ν μ€νΈλ λ€μμ λ΄λΉν©λλ€:
- λ³μ νκ²½: 컨ν μ€νΈ λ΄μ μ μΈλ λ³μμ ν¨μλ₯Ό λ΄κ³ μμ΅λλ€.
- λ μ컬 νκ²½: μΈλΆ νκ²½(λΆλͺ¨ ν¨μμ μ€ν 컨ν μ€νΈ λλ μ μ μ€ν 컨ν μ€νΈ)μ λν μ°Έμ‘°μ λλ€. μ΄λ₯Ό ν΅ν΄ μλ°μ€ν¬λ¦½νΈ μ½λλ μ€μ½ν 체μΈμ μ μλ λ³μμ ν¨μμ μ κ·Όν μ μμ΅λλ€.
- `this` λ°μΈλ©: `this` ν€μλμ κ°μ κ²°μ νλ©°, μ΄λ ν¨μκ° μ΄λ»κ² νΈμΆλλμ§μ λ°λΌ λ¬λΌμ§ μ μμ΅λλ€.
μ€ν 컨ν μ€νΈλ₯Ό μ΄ν΄νλ κ²μ μλ°μ€ν¬λ¦½νΈκ° λ³μ, μ€μ½ν, κ·Έλ¦¬κ³ ν¨μμ λμμ μ΄λ»κ² κ΄λ¦¬νλμ§ νμ νλ λ° νμμ μ λλ€. λν μ½λκ° μ κ·Όν μ μλ λ²μμ νΉμ ν¨μ λ΄ μ½λμ 격리λ₯Ό κ²°μ νκΈ° λλ¬Έμ 보μκ³Όλ κ΄λ ¨μ΄ μμ΅λλ€.
μ€ν 컨ν μ€νΈμ μ€μ μ¬μ© μ
λ€μμ κ°λ¨ν μλ°μ€ν¬λ¦½νΈ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€:
function outerFunction() {
let outerVariable = 'Hello';
function innerFunction() {
console.log(outerVariable);
}
innerFunction();
}
outerFunction(); // Output: Hello
μ΄ μμ μμ:
- `outerFunction()`μ μ체 μ€ν 컨ν μ€νΈλ₯Ό μμ±ν©λλ€.
- `innerFunction()` λν μ체 μ€ν 컨ν μ€νΈλ₯Ό μμ±ν©λλ€.
- `innerFunction()`μ λ μ컬 νκ²½ λλΆμ `outerVariable`μ μ κ·Όν μ μμ΅λλ€. λ μ컬 νκ²½μ μ΄λ₯Ό μΈλΆ ν¨μμ μ€μ½νλ‘ μ°κ²°ν΄ μ€λλ€.
μλ°μ€ν¬λ¦½νΈ 보μ μνκ³Ό μλλ°μ€ λ° μ€ν 컨ν μ€νΈμ μν λ°©λ²
μλ°μ€ν¬λ¦½νΈ μλλ°μ€μ μ€ν 컨ν μ€νΈλ λ€μν 보μ μνμ μννλ λ° μ€μν μν μ ν©λλ€. κ°μ₯ μΌλ°μ μΈ μν λͺ κ°μ§λ λ€μκ³Ό κ°μ΅λλ€:
1. ν¬λ‘μ€ μ¬μ΄νΈ μ€ν¬λ¦½ν (XSS)
XSS 곡격μ μ μ± μλ°μ€ν¬λ¦½νΈ μ½λλ₯Ό μΉμ¬μ΄νΈμ μ£Όμ νλ κ²μ ν¬ν¨ν©λλ€. μ΄ μ£Όμ λ μ½λλ νΌν΄μμ λΈλΌμ°μ μμ μ€νλμ΄ λ―Όκ°ν μ 보(λ‘κ·ΈμΈ μ격 μ¦λͺ μ΄λ κ°μΈ λ°μ΄ν° λ±)λ₯Ό νμΉκ±°λ, μΉμ¬μ΄νΈ μ½ν μΈ λ₯Ό μ‘°μνκ±°λ, μ¬μ©μλ₯Ό μ μ± μ¬μ΄νΈλ‘ 리λλ μ ν μ μμ΅λλ€. μλ°μ€ν¬λ¦½νΈ μλλ°μ€λ μ½λκ° λ―Όκ°ν λ°μ΄ν°μ μ κ·Όνκ±°λ λΈλΌμ°μ λ²μλ₯Ό λ²μ΄λ μμ μ μννλ λ₯λ ₯μ μ νν¨μΌλ‘μ¨ XSS κ³΅κ²©μ΄ κ°ν μ μλ νΌν΄λ₯Ό μ νν©λλ€.
μλλ°μ€μ μν μν: μλλ°μ€λ μ£Όμ λ μλ°μ€ν¬λ¦½νΈκ° λ‘컬 νμΌμ μ κ·Όνκ±°λ, μ§μ μ μΈ μμ€ν νΈμΆμ νκ±°λ, μΉμΈλμ§ μμ μλ²μ ν΅μ νλ κ²μ λ°©μ§ν©λλ€. μ΄λ λλλΉν μ 보μ μ ν¨μ±μ μ νν©λλ€.
μ€ν 컨ν μ€νΈμ μν μν: μ€ν 컨ν μ€νΈκ° μ§μ μ μΌλ‘ μ£Όμ μ λ°©μ΄νμ§λ μμ§λ§, XSS 곡격μ λ²μλ₯Ό μ ννλ λ° λμμ΄ λ μ μμ΅λλ€. μ λ ₯κ° κ²μ¦ λ° μΆλ ₯ μΈμ½λ©κ³Ό κ°μ μμ ν μ½λ© κ΄νμ λ°λ₯΄λ©΄ μ¬λ°λ₯Έ νκ²½ λ΄μμ μ μ± μ½λλ₯Ό μ€νν μ μλ λ₯λ ₯μ΄ μ νλ©λλ€.
2. ν¬λ‘μ€ μ¬μ΄νΈ μμ² μμ‘° (CSRF)
CSRF 곡격μ μΉμ¬μ΄νΈκ° μ¬μ©μμ λΈλΌμ°μ λ₯Ό μ λ’°νλ€λ μ μ μ μ©ν©λλ€. 곡격μλ μ¬μ©μκ° λ‘κ·ΈμΈν μΉ μ ν리μΌμ΄μ μμ μμΉ μλ μμ μ μννλλ‘ μμ λλ€. 곡격μλ μ μμ μΈ μμ²μ λ§λ€μ΄ μ¬μ©μκ° μ΄λ₯Ό μ μΆνλλ‘ μ λν©λλ€. λΈλΌμ°μ λ μ¬μ©μμ μΏ ν€λ₯Ό μλμΌλ‘ 첨λΆνκ³ , μ ν리μΌμ΄μ μ μ¬μ©μμ μ격 μ¦λͺ μΌλ‘ μμ²μ μ€νν©λλ€.
μλλ°μ€μ μν μν: μλλ°μ€λ CSRFλ₯Ό μ§μ μ μΌλ‘ λ°©μ§νμ§ μμ΅λλ€. κ·Έλ¬λ λ€νΈμν¬ λ¦¬μμ€μ λν λ¬΄λ¨ μ κ·Όμ λ°©μ§ν¨μΌλ‘μ¨ κ³΅κ²©μκ° κΈ°μ‘΄ μ ν리μΌμ΄μ μμ²μ νμ©νκ±°λ μ‘°μνλ λ₯λ ₯μ μ νν μ μμ΅λλ€. λμΌ μΆμ² μ μ± μ μΌλΆ CSRF λ¬Έμ λ₯Ό μνν©λλ€.
μ€ν 컨ν μ€νΈμ μν μν: μ€ν 컨ν μ€νΈμ μ μ ν μ¬μ©μ 그리 μ€μνμ§ μμ΅λλ€. κ·Έλ¬λ CSRF ν ν° μΆκ° λ° μ¬μ©μ μ λ ₯ κ²μ¦κ³Ό κ°μ μμ ν μ½λ© κ΄νμ λͺ¨λ μμ²μ΄ μΈμ¦λλλ‘ λ³΄μ₯ν©λλ€.
3. λ°μ΄ν° λλ
μ μ± μλ°μ€ν¬λ¦½νΈλ λ‘κ·ΈμΈ μ격 μ¦λͺ , μ μ©μΉ΄λ μ 보 λλ κ°μΈ μ 보μ κ°μ λ―Όκ°ν μ¬μ©μ λ°μ΄ν°λ₯Ό νμΉλ λ° μ¬μ©λ μ μμ΅λλ€. μ΄ λ°μ΄ν°λ DOMμ ν΅ν΄ μ§μ μ κ·Όνκ±°λ μ μ± μλ²λ‘ κ°μ μ μΌλ‘ μ μ‘λ μ μμ΅λλ€.
μλλ°μ€μ μν μν: μ¬κΈ°μ μλλ°μ€λ κ°μ₯ μ€μν©λλ€. νμΌ μ κ·Ό, κ΅μ°¨ μΆμ² μμ²(CORSλ₯Ό ν΅ν΄), κ·Έλ¦¬κ³ λ€λ₯Έ μμ€ν 리μμ€μ λν μ κ·Ό μ νμ 곡격μκ° μ¬μ©μ λ°μ΄ν°λ₯Ό νμΉκ³ λΉΌλ리λ λ₯λ ₯μ μ νν©λλ€.
μ€ν 컨ν μ€νΈμ μν μν: μμ ν μ½λ© κ΄νκ³Ό ν¨κ» μ€ν 컨ν μ€νΈλ ν¨μμ λ²μμ λ―Όκ°ν λ°μ΄ν°μ λν μ κ·Όμ μ ννμ¬ λλ κ°λ₯μ±μ μ€μΌ μ μμ΅λλ€.
4. μλΉμ€ κ±°λΆ (DoS) 곡격
DoS 곡격μ ν©λ²μ μΈ μ¬μ©μκ° μΉ μ ν리μΌμ΄μ μ μ¬μ©ν μ μκ² λ§λλ κ²μ λͺ©νλ‘ ν©λλ€. μλ°μ€ν¬λ¦½νΈ λ¨λ μΌλ‘λ μ¬κ°ν DoS 곡격μ μΌμΌν¬ μ μμ§λ§, μ μ± μλ°μ€ν¬λ¦½νΈλ λ€λ₯Έ κΈ°μ (μ: λΈλΌμ°μ μμμ κ³Όλν 리μμ€ μλΉ)κ³Ό ν¨κ» μ¬μ©λμ΄ μ¬μ©μ κ²½νμ μ νμν€κ±°λ λΈλΌμ°μ λ₯Ό λ€μ΄μν¬ μ μμ΅λλ€.
μλλ°μ€μ μν μν: μλλ°μ€λ μλ°μ€ν¬λ¦½νΈμ μ κ·Όμ μ νν©λλ€. μ΄ μ νμ΄ μλ€λ©΄, μλͺ» μμ±λ μλ°μ€ν¬λ¦½νΈλ μλΉν 리μμ€λ₯Ό λΉ λ₯΄κ² μλΉνμ¬ μλΉμ€ κ±°λΆλ₯Ό μ λ°ν μ μμ΅λλ€. νλ λΈλΌμ°μ λ 리μμ€ μ νμ κ°μ ν©λλ€.
μ€ν 컨ν μ€νΈμ μν μν: μ΄ κ²½μ° μ€ν 컨ν μ€νΈλ νΉλ³ν μ μ©νμ§ μμ΅λλ€. μ€ν 컨ν μ€νΈμμ μλ°μ€ν¬λ¦½νΈ μ½λμ 볡μ‘μ±κ³Ό ν¨μ¨μ±μ μ ννλ κ²μ νμ΄μ§μ μ λ°μ μΈ μ±λ₯μ κΈ°μ¬ν μ μμ§λ§, μ΄λ λ μ§μ μ μΈ ν¨κ³Όμ λλ€.
μμ ν μλ°μ€ν¬λ¦½νΈ κ°λ°μ μν λͺ¨λ² μ¬λ‘
μλ°μ€ν¬λ¦½νΈ μλλ°μ€μ μ€ν 컨ν μ€νΈκ° λ΄μ¬λ 보μ μ΄μ μ μ 곡νμ§λ§, ν¬κ΄μ μΈ μΉ μ ν리μΌμ΄μ 보μμ μν΄μλ 건μ ν μ½λ© κ΄νκ³Ό κ²°ν©νλ κ²μ΄ μ€μν©λλ€. λ€μμ λͺ κ°μ§ ν΅μ¬ λͺ¨λ² μ¬λ‘μ λλ€:
- μ λ ₯κ° κ²μ¦ λ° μ΄κ· : μλ°μ€ν¬λ¦½νΈ μ½λμμ μ¬μ©νκΈ° μ μ νμ μ¬μ©μ μ λ ₯μ κ²μ¦νκ³ μ΄κ· νμΈμ. μ΄λ μ λ’°ν μ μλ λ°μ΄ν°κ° μ½λλ‘ μ€νλμ§ μλλ‘ νμ¬ XSS 곡격μ λ°©μ§νλ λ° λμμ΄ λ©λλ€.
- μΆλ ₯ μΈμ½λ©: μ¬μ©μκ° μ 곡ν λ°μ΄ν°λ₯Ό νμν λ, λΈλΌμ°μ κ° μ΄λ₯Ό HTMLμ΄λ μλ°μ€ν¬λ¦½νΈλ‘ ν΄μνμ§ μλλ‘ μ μ νκ² μΈμ½λ©νμΈμ. μ΄λ μ μ± μ½λκ° HTML λλ μλ°μ€ν¬λ¦½νΈ μμλ₯Ό ν΅ν΄ μ£Όμ λλ XSS 곡격μ λ°©μ§νλ λ° λ§€μ° μ€μν©λλ€.
- μμ ν νλ μμν¬ λ° λΌμ΄λΈλ¬λ¦¬ μ¬μ©: λ΄μ₯λ 보μ κΈ°λ₯μ΄ μλ νν μ’κ³ μ κ΄λ¦¬λλ μλ°μ€ν¬λ¦½νΈ νλ μμν¬ λ° λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμΈμ. 보μ μ·¨μ½μ μ λν μ 보λ₯Ό κ³μ νμΈνκ³ λ³΄μ ν¨μΉλ₯Ό μ μνκ² μ μ©νμΈμ.
- μ½ν μΈ λ³΄μ μ μ± (CSP): CSPλ₯Ό ꡬννμ¬ λΈλΌμ°μ κ° λ‘λν μ μλ 리μμ€λ₯Ό μ μ΄νμΈμ. CSPλ λΈλΌμ°μ κ° μ€ν¬λ¦½νΈ, μ€νμΌ λ° κΈ°ν 리μμ€λ₯Ό λ‘λν μ μλ μΆμ²λ₯Ό μ ννμ¬ XSS 곡격μ μννλ λ° λμμ΄ λ©λλ€.
- νμ 리μμ€ λ¬΄κ²°μ± (SRI): SRIλ₯Ό μ¬μ©νμ¬ μΉ νμ΄μ§κ° λ‘λνλ μΈλΆ μλ°μ€ν¬λ¦½νΈ λ° CSS νμΌμ΄ λ³μ‘°λμ§ μμλμ§ νμΈνμΈμ. μ΄λ 곡격μκ° μ½ν μΈ μ μ‘ λ€νΈμν¬(CDN)λ μ 3μ μλ²μμ νΈμ€ν λλ νμΌμ μμ νμ¬ μΉμ¬μ΄νΈμ μ μ± μ½λλ₯Ό μ£Όμ νλ κ²μ λ°©μ§νλ λ° λμμ΄ λ©λλ€.
- μννΈμ¨μ΄ μ΅μ μν μ μ§: μΉ λΈλΌμ°μ , μλ°μ€ν¬λ¦½νΈ μμ§ λ° μ¬μ©νλ κΈ°ν λͺ¨λ μννΈμ¨μ΄λ₯Ό μ κΈ°μ μΌλ‘ μ λ°μ΄νΈνμΈμ. λΈλΌμ°μ λ° μλ°μ€ν¬λ¦½νΈ μμ§μ μ·¨μ½μ μ ν΄κ²°νκΈ° μν΄ λ³΄μ ν¨μΉκ° μμ£Ό λ°°ν¬λ©λλ€.
- `eval()` μ¬μ© νΌνκΈ°: `eval()` ν¨μλ λ¬Έμμ΄μ μλ°μ€ν¬λ¦½νΈ μ½λλ‘ μ€νν©λλ€. μ΄λ 곡격μκ° μμμ μ½λλ₯Ό μ€νν μ μκ² νλ―λ‘ λ§€μ° μνν μ μμ΅λλ€. κ°λ₯ν ν `eval()` μ¬μ©μ νΌνλ κ²μ΄ λͺ¨λ² μ¬λ‘μ λλ€.
- CORS μ¬λ°λ₯΄κ² ꡬμ±νκΈ°: μ ν리μΌμ΄μ μ΄ κ΅μ°¨ μΆμ² μμ²μ μ¬μ©νλ κ²½μ°, μ λ’°ν μ μλ μΆμ²λ§ 리μμ€μ μ κ·Όν μ μλλ‘ CORS μ€μ μ μ μ€νκ² κ΅¬μ±νμΈμ. μμ νμ§ μμ CORS ꡬμ±μ λ€μν μ·¨μ½μ μΌλ‘ μ΄μ΄μ§ μ μμ΅λλ€.
- 보μ κ°μ¬ λ° μΉ¨ν¬ ν μ€νΈ: μ κΈ°μ μΌλ‘ 보μ κ°μ¬ λ° μΉ¨ν¬ ν μ€νΈλ₯Ό μννμ¬ μ ν리μΌμ΄μ μ μ μ¬μ μΈ μ·¨μ½μ μ μλ³νκ³ ν΄κ²°νμΈμ.
- μ΅μ κΆν μμΉ μ€μ: μλ°μ€ν¬λ¦½νΈ μ½λκ° μ΅μνμ νμν κΆνλ§ κ°λλ‘ μ€κ³νμΈμ. μ΄λ 보μ μΉ¨ν΄κ° λ°μνμ λ κ·Έ μν₯μ μ€μ¬μ€λλ€.
- κ°λ°μ κ΅μ‘: κ°λ°νμ΄ μΉ λ³΄μ λͺ¨λ² μ¬λ‘μ λν΄ κ΅μ‘λ°κ³ μΌλ°μ μΈ μ·¨μ½μ μ μΈμ§νλλ‘ νμΈμ. μ΄λ νμ΄ λͺ¨λ μ½λ© νλ‘μ νΈμμ μ μ ν 보μ μ‘°μΉλ₯Ό μ κ·Ήμ μΌλ‘ μ μ©νλλ‘ λ³΄μ₯ν©λλ€.
μ€μ μ¬λ‘μ κ΅μ μ κ΄λ ¨μ±
μλ°μ€ν¬λ¦½νΈ 보μ μμΉκ³Ό μλλ°μ€ λ° μ€ν 컨ν μ€νΈμ μ€μμ±μ μ μΈκ³μ μΌλ‘ μ μ©λ©λλ€. κ·Έλ¬λ λ€μν μ§μ λ° μ°μ μμμ κ΄λ ¨μ±μ λν λͺ κ°μ§ μ€μ μ μΈ μλ₯Ό μΈκΈν κ°μΉκ° μμ΅λλ€:
- μ μμκ±°λ νλ«νΌ: μ μμκ±°λ μ°μ μμλ 보μμ΄ κ°μ₯ μ€μν©λλ€. Amazon, Alibaba, MercadoLibreμ κ°μ νλ«νΌμ μ¬μ©μ λ°μ΄ν°λ₯Ό 보νΈνκ³ κ²°μ μ¬κΈ°λ₯Ό λ°©μ§ν΄μΌ ν©λλ€. μλλ°μ€ λ° κ΄λ ¨ 보μ κ΄νμ λ―Όκ°ν κ³ κ° μ 보λ₯Ό μμμν¬ μ μλ XSS λ° κΈ°ν 곡격μ λ°©μ§νλ λ° νμμ μ λλ€.
- μν λ° κΈμ΅ κΈ°κ΄: κΈμ΅ λΆλ¬Έμμλ μ¬μ©μ κ³μ μ 보νΈνκ³ λ¬΄λ¨ κ±°λλ₯Ό λ°©μ§νλ κ²μ΄ μ€μν©λλ€. μ μΈκ³μ μνκ³Ό κΈμ΅ κΈ°κ΄μ κ°λ ₯ν μΈμ¦, μ λ ₯κ° κ²μ¦, κ²¬κ³ ν 보μ νλ‘ν μ½μ ν¬ν¨νμ¬ μΉ μ ν리μΌμ΄μ μ 보νΈνκΈ° μν΄ μλ°μ€ν¬λ¦½νΈ 보μμ μμ‘΄ν©λλ€. λ―Έκ΅, μκ΅, μΌλ³Έκ³Ό κ°μ κ΅κ°μ μν μ ν리μΌμ΄μ μμ μμ ν μλ°μ€ν¬λ¦½νΈ μ¬μ©μ΄ κ·Έ μμ λλ€.
- μ λΆ μΉμ¬μ΄νΈ: κ°μΈ μ 보μ μ λΆ μλΉμ€λ₯Ό μ²λ¦¬νλ μ λΆ μΉμ¬μ΄νΈλ μμ£Ό 곡격μ λμμ΄ λ©λλ€. μ μΈκ³ λͺ¨λ μ λΆμ μΉμ¬μ΄νΈμμλ μ΅κ³ μ 보μ κ΄νμ μ μ©νλ κ²μ΄ μ무μ μ λλ€. λ―Έκ΅, νΈμ£ΌμμλΆν° μ λ½ λ° μμμ κ΅κ°μ μΉμ¬μ΄νΈμ μ΄λ₯΄κΈ°κΉμ§, κ±΄κ° λλ μΈκΈ ν¬νΈμ μ μ₯λ μ 보μ κ°μ λ―Όκ°ν μ¬μ©μ λ°μ΄ν°λ₯Ό 보νΈνλ κ²μ νμμ λλ€.
- μμ λ―Έλμ΄ νλ«νΌ: Facebook, Twitter, Instagramκ³Ό κ°μ μμ λ―Έλμ΄ νλ«νΌμ λ°©λν μμ μ¬μ©μ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ©° XSS 곡격μ μ·¨μ½ν©λλ€. μ¬μ©μμ λ°μ΄ν°λ₯Ό 보νΈν¨μΌλ‘μ¨ μμ λ―Έλμ΄ νλ«νΌμ νλ«νΌμ 보νΈνκ³ μ¬μ©μ μ λ’°λ₯Ό μ μ§νκΈ° μν΄ μ½λμ μλλ°μ€ λ° μ λ ₯κ° κ²μ¦κ³Ό κ°μ μ격ν 보μ μ‘°μΉλ₯Ό μ¬μ©ν©λλ€.
μ΄λ¬ν μλ μλ°μ€ν¬λ¦½νΈ 보μμ μ μΈκ³μ μΈ κ΄λ ¨μ±μ 보μ¬μ€λλ€. μν νκ²½μ λ¨μΌ κ΅κ°λ₯Ό λμ΄ νμ₯λ©λλ€. λͺ¨λ μΉ μ ν리μΌμ΄μ μ μλ°μ€ν¬λ¦½νΈ μλλ°μ€ λ° μ€ν 컨ν μ€νΈ μ΄ν΄λ₯Ό ν¬ν¨ν 건μ ν 보μ κ΄νμ ꡬνν΄μΌ ν©λλ€.
κ²°λ‘
μλ°μ€ν¬λ¦½νΈ μλλ°μ€μ μ€ν 컨ν μ€νΈλ μΉ μ ν리μΌμ΄μ 보μμ μ€μν κΈ°λ₯μ λλ€. μλλ°μ€λ μ μ± μλ°μ€ν¬λ¦½νΈ μ½λμ μ μ¬μ μν₯μ μ ννλ μ€μν λ°©μ΄ κ³μΈ΅μ μ 곡νλ©°, μ€ν 컨ν μ€νΈλ ν΄λΉ νκ²½ λ΄μμ μλ°μ€ν¬λ¦½νΈ μ½λκ° μ΄λ»κ² ν΄μλκ³ μ€νλλμ§λ₯Ό κ΄λ¦¬ν©λλ€. μ΄λ¬ν κ°λ μ μ΄ν΄νκ³ μμ ν μ½λ© κ΄νκ³Ό κ²°ν©ν¨μΌλ‘μ¨ κ°λ°μλ λ€μν 보μ μνμ λ νλ ₯μ μΈ μΉ μ ν리μΌμ΄μ μ ꡬμΆν μ μμ΅λλ€. μΉμ΄ κ³μ λ°μ ν¨μ λ°λΌ, μ΅μ 보μ μνκ³Ό λͺ¨λ² μ¬λ‘μ λν μ 보λ₯Ό μ μ§νλ κ²μ μ μΈκ³ λͺ¨λ μΉ κ°λ°μμκ² νμμ μ λλ€.