FastComments.com


์—ฌ๊ธฐ์—์„œ๋Š” FastComments ๋Œ“๊ธ€ ํ˜•์‹, ๋Œ“๊ธ€ ์ž‘์„ฑ ์‹œ ์ง€์›๋˜๋Š” ๊ธฐ๋Šฅ, ํ…์ŠคํŠธ ์„œ์‹ ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์‹œ์Šคํ…œ์— ํ†ตํ•ฉ๋œ ๋‹ค์–‘ํ•œ ํ•„ํ„ฐ ๋ฐ ์•ˆ์ „ ์กฐ์น˜์— ๋Œ€ํ•ด ๋‹ค๋ฃน๋‹ˆ๋‹ค.


๊ธฐ๋ณธ ์„œ์‹ Internal Link

FastComments๋Š” Markdown๊ณผ HTML์˜ ๊ฐ„๋‹จํ•œ ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์กฐํ•ฉํ•˜์—ฌ ๋Œ“๊ธ€ ์ž‘์„ฑ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

Markdown ๊ตฌ๋ฌธ์— ๋Œ€ํ•œ ์ข‹์€ ๋ฆฌ์†Œ์Šค๋Š” ์—ฌ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์„œ์‹์˜ ๊ฒฝ์šฐ, ์„œ์‹ ๋„๊ตฌ ๋ชจ์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…์ŠคํŠธ๋ฅผ ๊ตต๊ฒŒ ๋˜๋Š” ๊ธฐ์šธ์ž„๊ผด๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๊ตฌ๋ฌธ ์˜ˆ์‹œ:

  • ๊ตต๊ฒŒ:
    • **๊ตต๊ฒŒ**
    • <b>๊ตต์€ ํ…์ŠคํŠธ</b>
  • ๊ธฐ์šธ์ž„๊ผด:
    • *๊ธฐ์šธ์ž„๊ผด*
    • <i>๊ธฐ์šธ์ž„๊ผด ํ…์ŠคํŠธ</i>
  • ์ทจ์†Œ์„ :
    • ~~์ทจ์†Œ์„ ~~
    • <strike>์ทจ์†Œ์„ </strike>
  • ์ธ์šฉ:
    • > ์ธ์šฉ

Markdown ์ œ๋ชฉ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋งํฌ๋Š” HTML์ด๋‚˜ ๋‹ค๋ฅธ ๊ตฌ๋ฌธ ์—†์ด ์›์‹œ URL๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งํฌ๋Š” ์ŠคํŒจ๋จธ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด target="nofollow noopener"๊ฐ€ ์žˆ๋Š” ํด๋ฆญ ๊ฐ€๋Šฅํ•œ ๋งํฌ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์‚ฌ์ดํŠธ๋Š” ์ž๋™ ๋งํฌ ์ƒ์„ฑ์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ˆœ์„œ ์žˆ๋Š” ๋ชฉ๋ก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

1. ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ.
2. ๋‘ ๋ฒˆ์งธ ํ•ญ๋ชฉ.
3. ์„ธ ๋ฒˆ์งธ ํ•ญ๋ชฉ.

๊ธ€๋จธ๋ฆฌ ๊ธฐํ˜ธ ๋ชฉ๋ก๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค:

- ์–ด๋–ค ํฌ์ธํŠธ.
- ๋‹ค๋ฅธ ํฌ์ธํŠธ.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€ํ–ฅ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ฒฝ์šฐ, ๋Œ“๊ธ€ ์˜์—ญ์— ์ฝ”๋“œ๋ฅผ ๋ถ™์—ฌ๋„ฃ์–ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์–ธ์–ด๊ฐ€ ์ž๋™์œผ๋กœ ๊ฐ์ง€๋˜์–ด ์„œ์‹์ด ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” <code></code> ํƒœ๊ทธ๋‚˜ ๋ฐฑํ‹ฑ์„ ์‚ฌ์šฉํ•œ Markdown ์ฝ”๋“œ ๋ธ”๋ก์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณด์•ˆ Internal Link

์‚ฌ๋žŒ๋“ค์ด ์›น์‚ฌ์ดํŠธ์— ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๊ทธ ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์žฅ์น˜์—์„œ ๋ Œ๋”๋งํ•  ๋•Œ ๋ณด์•ˆ์—๋Š” ์—ฌ๋Ÿฌ ์ธก๋ฉด์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์„œ์‹ ๋‚จ์šฉ ๋ฐฉ์ง€

์‚ฌ๋žŒ๋“ค์€ ํ…์ŠคํŠธ ์„œ์‹์„ ๋‚จ์šฉํ•˜์—ฌ ์˜๋„์ ์œผ๋กœ ์‹œ๊ฐ์ ์œผ๋กœ ์‚ฐ๋งŒํ•˜๊ณ  ํ† ๋ก ์˜ ๊ฐ€์น˜๋ฅผ ๋–จ์–ด๋œจ๋ฆฌ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

FastComments๋Š” ์„œ์‹ ๋‚จ์šฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์กฐ์น˜๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค:

  • ํฐ ๋ฐ˜๋ณต ์—ฐ์† ์ค„๋ฐ”๊ฟˆ์ด ์ถ•์†Œ๋ฉ๋‹ˆ๋‹ค.
  • ์ œ๋ชฉ์„ ๋ Œ๋”๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ผ๋ฐ˜ ํ…์ŠคํŠธ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค).
  • CSS๋‚˜ ์‚ฌ์šฉ์ž ์ •์˜ ์ƒ‰์ƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ต์Šคํ”Œ๋กœ์ž‡ ๋ฐฉ์ง€

HTML์„ ๋ Œ๋”๋งํ•˜๋Š” ์‹œ์Šคํ…œ์—์„œ ์ต์Šคํ”Œ๋กœ์ž‡์ด ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. FastComments๋Š” ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์กฐ์น˜๋ฅผ ์ทจํ•ฉ๋‹ˆ๋‹ค:

  • ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜๋œ HTML ํƒœ๊ทธ ์„ธํŠธ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜๋œ HTML ํƒœ๊ทธ ์†์„ฑ ์„ธํŠธ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ์ž…๋ ฅ์„ ์ •ํ™”ํ•˜๊ณ  ์‚ด๊ท ํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋Š” DOMPurify์™€ sanitizeHtml ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
    • ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ์ž˜ ํ…Œ์ŠคํŠธ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค(๊ฐ๊ฐ ์ฃผ๋‹น 400๋งŒ ํšŒ ์ด์ƒ ๋ฐ 100๋งŒ ํšŒ ์ด์ƒ ๋‹ค์šด๋กœ๋“œ).

์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ <script> ๋˜๋Š” <style> ํƒœ๊ทธ๋ฅผ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์ด๋ฏธ์ง€๋‚˜ ๋‹ค๋ฅธ ์ฝ˜ํ…์ธ ์— onload=alert() ์œ ํ˜•์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ—ˆ์šฉํ•˜๋Š” HTML ํƒœ๊ทธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • <b>
  • <em>
  • <u>
  • <i>
  • <strike>
  • <pre>
  • <span>
  • <code>
  • <img>
  • <a>
  • <strong>
  • <ul>
  • <ol>
  • <li>
  • <br>