브라우저 해킹 vs 보안 독자 증정 이벤트 결과 발표

Twitter icon류광, 2014-11-11 18:11
브라우저 해킹 vs 보안 독자 증정 이벤트 문제 해설.

브라우저 해킹 vs 보안 독자 증정 이벤트를 이 시점에서 마감합니다. 답을 보내 주신 분이 두 분 밖에 없어서 자동으로 두 분이 대상자로 선정되었습니다. 두 분께는 따로 편지 드리겠습니다.

문제가 좀 어려웠나요? 본질적으로 어려운 문제는 아니지만 아마 이쪽에 관심이 없는 분에게는 이런 북마클릿의 의도 자체가 생소하지 않았나 합니다.

문제는 다음과 같았습니다.

문제: 다음은 현재 서핑 중인 웹 페이지를 GpgStudy 게임 개발 소식의 사용자 임시 보관함에 등록하는 북마클릿입니다(원래는 한 줄인데 너무 길어서 줄을 좀 바꾸었습니다. 이 점이 답에 영향을 미치지는 않습니다). 이 코드에서 setTimeout(function ... 3000) 부분은 어떤 의미일까요?

javascript:(function(){var d=document;var s=d.createElement('script');
s.type='text/javascript';s.charset='UTF-8';
var h=encodeURIComponent(d.location.href);
s.src='http://gpgstudy.com/news/js/draft?u='+h;d.documentElement.appendChild(s);
setTimeout(function(){if(typeof gnd_added_=="undefined")
location.href='http://gpgstudy.com/news/add/draft?u='+h},3000)})()

해당 호출이 무슨 일을 하는지, 왜 그런 일이 필요한지 서술하시면 됩니다. 힌트: 짐작하셨겠지만 브라우저의 보안 기능과 관련이 있습니다.

채점 기준은 다음과 같습니다.

추가로 설명하자면...

이 북마클릿의 전체적인 목적은 "현재 페이지를 GpgStudy 게임 개발 소식의 사용자 임시 보관함에 추가하되, 그 결과를 현재 페이지 안에 표시한다"는 것입니다. 간단한 북마클릿은 그냥 해당 URL(javascript: ... ) 안의 코드로 모든 일을 수행하지만, 이처럼 페이지 안에 새로운 HTML 요소를 추가하는 등의 좀 더 복잡한 작업을 수행하는 북마클릿은 현재 페이지 안에 동적으로

comments powered by Disqus