Pdf.js: pdf.js ๋ทฐ์–ด์— ์ „์ž ์„œ๋ช…์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ

์— ๋งŒ๋“  2014๋…„ 05์›” 06์ผ  ยท  29์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mozilla/pdf.js

pdf.js ๋ทฐ์–ด์— ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ์ „์ž ์„œ๋ช…์ด์žˆ๋Š” ๋ฌธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” zipLogix Digital Ink๋ฅผ ์ „์ž ์„œ๋ช… ๊ณต๊ธ‰์ž๋กœ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๋Š” ์„œ๋ช…๊ณผ ํ•จ๊ป˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์—…๋กœ๋“œ๋˜์ง€๋งŒ ์•ฑ์—์„œ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ์„œ๋ช…์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ดํ›„ ๋ฌธ์„œ๋ฅผ ๋‹ค์‹œ ๋‹ค์šด๋กœ๋“œํ•˜๋ฉด ์—…๋กœ๋“œ ํ”„๋กœ์„ธ์Šค์—์„œ ์„œ๋ช…์ด ์†์‹ค๋˜์ง€ ์•Š์•˜ ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

* ์ฐธ๊ณ  : ๋‚˜๋Š” ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๋™์ผํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง„ ๋ฌธ์„œ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

4-annotations

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/mozilla/pdf.js/blob/master/src/core/annotation.js#L527

    // Hide unsupported Widget signatures.
    if (data.fieldType === 'Sig') {
      warn('unimplemented annotation type: Widget signature');
      this.setFlags(AnnotationFlag.HIDDEN);
    }

์ด ์ค„์„ ์ œ๊ฑฐํ•˜๋ฉด ๋‚ด ๋ฌธ์„œ์— ์ธ์ƒ ๋œ ์„œ๋ช…์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒจ๋ถ€ ๋œ pdf (https://dl.dropboxusercontent.com/u/5681461/dev/test-signature.pdf) ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ์„œ๋ช…์„ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ˜์ „ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

test_pdf

๋ชจ๋“  29 ๋Œ“๊ธ€

@StevenHarlow ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์กฐ์‚ฌํ•˜๋ ค๋ฉด ์˜ˆ์ œ PDF๊ฐ€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ์€์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•  ์˜ˆ์ œ PDF๊ฐ€์žˆ์„ ๋•Œ ๋‹ค์‹œ ์—ด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ทฐ์–ด์— ์„œ๋ช…์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ?
์—ฌ๊ธฐ์— ์„œ๋ช… ๋œ PDF๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
https://dl.dropboxusercontent.com/u/5681461/dev/test-signature.pdf

์ด ์„œ๋ช…์€ ํ™•์ธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ ํšจํ•œ ์„œ๋ช…์ด ํ™•์ธ ๋œ ๊ฒฝ์šฐ์—๋„ pdf.js ๋ทฐ์–ด์— ์„œ๋ช… ํ•„๋“œ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒฝ์šฐ์—๋Š” ์ž˜๋ชป๋œ ์„œ๋ช…์—๋งŒ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ์„œ๋ช…์ด์žˆ๋Š” pdf ๋ฌธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค (ํ•˜๋‚˜๋Š” ์œ ํšจํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์œ ํšจํ•˜์ง€ ์•Š์Œ). ๋‹ค๋ฅธ pdf ๋ทฐ์–ด์—์„œ๋Š” ๋ฌธ์„œ์— ์ธ์ƒ์ ์ธ ๋‘ ๊ฐ€์ง€ ์„œ๋ช…์„ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ pdf.js์—์„œ๋Š” ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ ๋ฌธ์„œ์— ํด๋ผ์ด์–ธํŠธ ๊ธฐ๋ฐ€ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ์–ด ์ฒจ๋ถ€ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ˆ˜์ • ๋จ : ๋ฌธ์ œ๋Š” ์œ ํšจํ•˜์ง€ ์•Š์€ ์„œ๋ช…๋ฟ ์•„๋‹ˆ๋ผ ์ œ ๊ฒฝ์šฐ์—๋Š” ์œ ํšจํ•œ ์„œ๋ช…์ด ๋ณด์ด์ง€ ์•Š๋Š” ์„œ๋ช… ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/mozilla/pdf.js/blob/master/src/core/annotation.js#L527

    // Hide unsupported Widget signatures.
    if (data.fieldType === 'Sig') {
      warn('unimplemented annotation type: Widget signature');
      this.setFlags(AnnotationFlag.HIDDEN);
    }

์ด ์ค„์„ ์ œ๊ฑฐํ•˜๋ฉด ๋‚ด ๋ฌธ์„œ์— ์ธ์ƒ ๋œ ์„œ๋ช…์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒจ๋ถ€ ๋œ pdf (https://dl.dropboxusercontent.com/u/5681461/dev/test-signature.pdf) ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ์„œ๋ช…์„ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ˜์ „ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

test_pdf

Visible Signature ์œ„์ ฏ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๋‹ค๋ฅธ ์–ด๋…ธํ…Œ์ด์…˜๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ชจ์–‘ ์ŠคํŠธ๋ฆผ์„ ๊ฐ€์ง€๋ฉฐ ์—ฌ๊ธฐ์—๋Š”์ด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋’ค์ง‘๊ธฐ๋Š” # 5946์˜ ์ค‘๋ณต ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋’ค์ง‘๊ธฐ ๋ฌธ์ œ๋Š” ์ด์ œ # 5946์ด ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฏ€๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„-์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ˆ˜์ • ์ผ์ •์ด ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•˜์‹ญ๋‹ˆ๊นŒ? ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

# 1076์—์„œ ๋””์ง€ํ„ธ ์„œ๋ช… ํ™•์ธ์— ์•ฝ๊ฐ„์˜ ์ง„์ „์ด์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

@timvandermeij ๋งํฌ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด์ƒํ•ฉ๋‹ˆ๋‹ค. 1 ๋…„ ์ „์— "ํ”Œ๋ฆฝ ํ•‘ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ์ผ์ง€ ๋งŒ ์ด์ œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋…ธ๋ž€์ƒ‰ ๋ฌผ์Œํ‘œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

zipLogix Digital Ink์˜ ๋ฌธ์„œ์— ๋Œ€ํ•ด์„œ๋Š” ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
https://new.zipformplus.com
pdf.worker.js์˜ ๋ช‡ ๊ฐ€์ง€ ๊ฒฝ๊ณ  :
๊ฒฝ๊ณ  : ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์œ„์ ฏ ํ•„๋“œ ์œ ํ˜• "Sig", ๊ธฐ๋ณธ ํ•„๋“œ ์œ ํ˜•์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

Idd, ๋™์ผํ•œ ๋ฌธ์ œ : ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์œ„์ ฏ ํ•„๋“œ ์œ ํ˜• "Sig", ๊ธฐ๋ณธ ํ•„๋“œ ์œ ํ˜•์œผ๋กœ ๋Œ€์ฒด.

์ด ์œ„์ ฏ์„ ์–ธ์ œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์„์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
PDF๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ ํ•  ๋•Œ ์„œ๋ช… ๋œ ์˜์—ญ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•„๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋””์ง€ํ„ธ ์„œ๋ช…์„ ํ™•์ธํ•˜๊ณ  ์ƒ์„ฑ ํ•  ์ˆ˜์žˆ๋Š” PKIjs ๋ฐ PDFjs ๊ธฐ๋ฐ˜์˜ ๋””์ง€ํ„ธ ์„œ๋ช… ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ๋ฏธ๊ตญ ๋””์ง€ํ„ธ ์„œ๋ช…๋ฒ•์„ ๋ณด๋Š” ์˜ˆ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

๋ทฐ์–ด๋Š” ํ˜„์žฌ eIDAS ์‹ ๋ขฐ ๋ชฉ๋ก์—์žˆ๋Š” CA์™€ Mozilla ์‹ ๋ขฐ S / MIME ๋ฐœ๊ธ‰์ž๋ฅผ ์‹ ๋ขฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ƒ˜ํ”Œ ํŒŒ์ผ์ด์žˆ๋Š” ๊ฒฝ์šฐ [email protected] ์œผ๋กœ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.

@rmhrisk ์†”๋ฃจ์…˜์„ ์˜คํ”ˆ ์†Œ์Šค ํ•  ์˜ˆ์ •์ž…๋‹ˆ๊นŒ?

@sreuter ๋Œ€๋ถ€๋ถ„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ด๋ฏธ ์˜คํ”ˆ ์†Œ์Šค์ด๋ฏ€๋กœ https://github.com/PeculiarVentures/ ์—์„œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

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

๋‚˜๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ์šฐ๋ฆฌ๊ฐ€ ํ•œ ์ผ์„ ๋” ์‰ฝ๊ฒŒ ๋ณต์ œ ํ•  ์ˆ˜ ์žˆ๋„๋ก PKIjs์— ๋Œ€ํ•œ ํ–ฅ์ƒ๋œ ์˜ˆ์ œ ์„ธํŠธ๋ฅผ ๋ˆ„๊ตฐ๊ฐ€์™€ ํ•จ๊ป˜ ์ž‘์—…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

pdf์—์„œ ์ „์ž ์„œ๋ช…์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ตฌ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ?
์šฐ๋ฆฌ๋Š” ๋…ผํ‰ํ•˜๋ ค๊ณ ํ•œ๋‹ค

if (data.fieldType === 'Sig') {
      warn('unimplemented annotation type: Widget signature');
      this.setFlags(AnnotationFlag.HIDDEN);
    }

๊ฐœ๋ฐœํ•˜๋Š” ๋™์•ˆ?
npm์—์„œ ์ƒˆ ํŒจํ‚ค์ง€๋ฅผ ์˜จ๋ผ์ธ์œผ๋กœ ์„ค์น˜ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

์—†๊ธฐ.

์ด ๋ธ”๋ก์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ฉด ์„œ๋ช…์ด ํ‘œ์‹œ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ณ„ํ‘œ๊ฐ€ ํ‘œ์‹œ๋˜๋ฉฐ ์„œ๋ช…์˜ ์‹œ๊ฐ์  ํ‘œํ˜„ ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์„œ๋ช… ํ™•์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ ์ด ์ฐจ๋‹จ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ํ‘œ์‹œ๋œ ๋ฌธ์„œ์˜ ์ •ํ™•์„ฑ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ž˜๋ชป๋œ ๋ณด์•ˆ ๊ฐ๊ฐ์„ ์ œ๊ณตํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

์„œ๋ช… ์œ„์ ฏ์„ ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•ด์ด ์ค„์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋Œ€์‹  ๊ตฌ์„ฑ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์„œ๋ช… ๋น„์ฃผ์–ผ์„ ํ‘œ์‹œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ฝ”๋“œ๋ฅผ ํฌํฌํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

pdf.js
๊ฒฝ๊ณ  : ๊ตฌํ˜„๋˜์ง€ ์•Š์€ ์œ„์ ฏ ํ•„๋“œ ์œ ํ˜• "Sig", ๊ธฐ๋ณธ ํ•„๋“œ ์œ ํ˜•์œผ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.
์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•?

์ „์ž ํฌ์ŠคํŠธ ๋ฐฑ์ด ํ•ด๊ฒฐ๋˜์—ˆ๊ณ  ํฌ๋กฌ์€ 'Dedicated Worker GlobalScope'์—์„œ 'postMessage'๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.๋ณต์ œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

3 ๋…„ ์ „๋ถ€ํ„ฐ ... ์ง„์ „์ด ์žˆ๋‚˜์š”?

@yurydelendik pdf.js๋Š” ๋‹จ์ˆœํ•œ ๋ทฐ์–ด์ž…๋‹ˆ๋‹ค. ๋””์ง€ํ„ธ ์„œ๋ช…์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋„ˆ๋ฌด ๋ชจํ˜ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ์™œ ๊ทธ๋ ‡๊ฒŒ ๋งŽ์€ ์ผ์„ํ•˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@hxlniada ์ตœ์†Œํ•œ ์œ„์ ฏ ์„œ๋ช… (๊ทธ๋ž˜ํ”ฝ ์„œ๋ช…)์„ ์„œ๋ช… ํ™•์ธ์—†์ด ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋˜ํ•œ ๊ทธ๊ฒƒ์„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. "๋ฏธํ™•์ธ"์ด๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์ „์ž ์„œ๋ช…์ด ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

PDF.js๋Š” ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. https://verify.ink๋ฅผ ํ™•์ธ

๋””์ง€ํ„ธ ์„œ๋ช… ์ง€์›์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์ด๋ฅผ ์ง€์›ํ•˜๋Š” ๋ทฐ์–ด๋ฅผ ๋ž˜ํ•‘ํ•˜๋Š” ์›น ๊ตฌ์„ฑ ์š”์†Œ์™€ iframe์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. https://verify.ink ์ฐธ์กฐ

# 1076์˜ ์ค‘๋ณต์ด๋ฏ€๋กœ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
5 / 5 - 1 ๋“ฑ๊ธ‰