"vk.com/away.php"๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๊ฑด๊ฐ•ํ•œ ์‚ฌ๋žŒ์˜ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€๊ธฐ

VKontakte์— ๊ฒŒ์‹œ๋œ ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋‹ค๋ฅธ ์†Œ์…œ ๋„คํŠธ์›Œํฌ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋จผ์ € "์•ˆ์ „ํ•œ" ๋งํฌ๋กœ ์ „ํ™˜๋œ ํ›„ ์†Œ์…œ ๋„คํŠธ์›Œํฌ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ถ”๊ฐ€ ํ—ˆ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์„ธ์‹ฌํ•œ ์‚ฌ๋žŒ๋“ค์€ ๋ธŒ๋ผ์šฐ์ €์˜ ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— "vk.com/away.php"๊ฐ€ XNUMX์ดˆ ๋™์•ˆ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ์•Œ์•„์ฐจ๋ ธ์ง€๋งŒ ๋ฌผ๋ก  ๊ทธ๊ฒƒ์— ์•„๋ฌด๋Ÿฐ ์ค‘์š”์„ฑ๋„ ๋ถ€์—ฌํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

"vk.com/away.php"๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๊ฑด๊ฐ•ํ•œ ์‚ฌ๋žŒ์˜ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€๊ธฐ

์„ ์‚ฌ ์‹œ๋Œ€

์–ด๋Š ๋‚ , ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์™„๋ฃŒํ•œ ์–ด๋–ค ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ž์‹ ์ด ๋ชจ๋“  ์‚ฌ๋žŒ์—๊ฒŒ ์ด ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด ์•Œ๋ฆฌ๊ณ  ์‹ถ์€ ์š•๊ตฌ์— ์‚ฌ๋กœ์žกํ˜€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋Š” ๊ณ ์œ  IP๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋„๋ฉ”์ธ ์ด๋ฆ„์€ ์—†๋Š” ์„œ๋ฒ„์—์„œ ํ˜ธ์ŠคํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ .ddns.net ๋„๋ฉ”์ธ์— ์•„๋ฆ„๋‹ค์šด XNUMX์ฐจ ํ•˜์œ„ ๋„๋ฉ”์ธ์ด ๋น ๋ฅด๊ฒŒ ์ƒ์„ฑ๋˜์–ด ๊ถ๊ทน์ ์œผ๋กœ ๋งํฌ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 

์ž ์‹œ ํ›„ ๊ฒŒ์‹œ๋ฌผ๋กœ ๋Œ์•„์˜จ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์‚ฌ์ดํŠธ ๋Œ€์‹  ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์‚ฌ์ดํŠธ๋กœ์˜ ์ „ํ™˜์„ ์•Œ๋ฆฌ๋Š” VK ์Šคํ…์ด ์—ด๋ฆฌ๊ณ  ์žˆ์Œ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

"vk.com/away.php"๋ฅผ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ๊ฑด๊ฐ•ํ•œ ์‚ฌ๋žŒ์˜ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€๊ธฐ

๋˜‘๋˜‘ํ•œ ์‚ฌ์šฉ์ž ์ž์‹ ์ด ์–ด๋Š ์‚ฌ์ดํŠธ๋กœ ๊ฐ€์•ผ ํ• ์ง€, ์–ด๋–ค ์‚ฌ์ดํŠธ๋กœ ๊ฐ€์•ผ ํ• ์ง€ ๊ฒฐ์ •ํ•  ๊ถŒ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ VKontakte๋Š” ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฐํ•˜๋ฉฐ ๋ชฉ๋ฐœ ์—†์ด ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฌด์—‡์ด ์ž˜๋ชป ๋˜์—ˆ๋‚˜์š”

์ด ๊ตฌํ˜„์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜์‹ฌ์Šค๋Ÿฌ์šด ์‚ฌ์ดํŠธ๋ฅผ ์—ด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋Œ€๋กœ ์‚ฌ์šฉ์ž๋Š” ์Šคํ…์„ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ์—ฌ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์€ ๋งํฌ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์ฃผ์†Œ ํ‘œ์‹œ์ค„์— ๋ถ™์—ฌ๋„ฃ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ๋งํฌ ํƒ์ƒ‰ ์†๋„๊ฐ€ ๋Š๋ ค์ง‘๋‹ˆ๋‹ค. ๋ฆฌ๋””๋ ‰์…˜ ์†๋„๋Š” ํ•‘์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋†’์€ ํ•‘์œผ๋กœ ์ธํ•ด ์†Œ์ค‘ํ•œ ์ƒ๋ช…์˜ ์‹œ๊ฐ„์ด ์†์‹ค๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ์šฉ๋‚ฉํ•  ์ˆ˜ ์—†๋Š” ์ผ์ž…๋‹ˆ๋‹ค.
  • ์ „ํ™˜ ๋ชจ๋‹ˆํ„ฐ๋ง. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด VK๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž ์ž‘์—…์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ „ํ™˜์ด ์ด๋ฃจ์–ด์ง„ ๊ฒŒ์‹œ๋ฌผ์˜ ID๋ฅผ ๋ณด์•ˆ ๋งํฌ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ๊ณ  ํ•ด๋ฐฉ

์œ„์˜ ๋ชจ๋“  ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ตœ์ ์˜ ์†”๋ฃจ์…˜์€ ๋ธŒ๋ผ์šฐ์ € ํ™•์žฅ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํ•œ ์ด์œ ๋กœ ์„ ํƒ์€ Chrome์— ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ˆ๋ธŒ์— ํ›Œ๋ฅญํ•œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค ๊ธฐ์‚ฌ Chrome์šฉ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์— ๊ด€ํ•œ ๊ธฐ์‚ฌ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ™•์žฅ์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ ํด๋”์— ๋‘ ๊ฐœ์˜ ํŒŒ์ผ(json-Manifest ๋ฐ ํ˜„์žฌ URL ์ฃผ์†Œ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” JavaScript ํŒŒ์ผ)์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋งค๋‹ˆํŽ˜์ŠคํŠธ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ™•์žฅ ๊ธฐ๋Šฅ์— ํƒญ ์ž‘์—… ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

{
  "manifest_version": 2,
  "name": "Run Away From vk.com/away",
  "version": "1.0",
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": ["tabs"],
  "browser_action": {
    "default_title": "Run Away From vk.com/away"
  }
}

js ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

์—ฌ๊ธฐ์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ํƒญ์ด ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ด๋ฒคํŠธ์—์„œ URL ์ฃผ์†Œ๊ฐ€ "๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ ํ™•์ธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.vk.com/away.php"๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ GET ์š”์ฒญ์— ์žˆ๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

chrome.tabs.onCreated.addListener( function (tabId, changeInfo, tab) {
	chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) {
		var url = tabs[0].url;
		if (url.substr(0,23) == "https://vk.com/away.php"){
			var last = url.indexOf("&", 0)
			if(last == -1)last = 1000;
			var url = decodeURIComponent(url.substr(27, last-27));
			chrome.tabs.update({url: url});
		}
	});
});

ํ™•์žฅ ์กฐ๋ฆฝ

๋‘ ํŒŒ์ผ์ด ๋ชจ๋‘ ๋™์ผํ•œ ํด๋”์— ์žˆ๋Š”์ง€ ํ™•์ธํ•œ ํ›„ Chrome์„ ์—ด๊ณ  ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ํƒญ์„ ์„ ํƒํ•œ ๋‹ค์Œ '์••์ถ•ํ•ด์ œ๋œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋กœ๋“œ'๋ฅผ ํด๋ฆญํ•˜์„ธ์š”. ์—ด๋ฆฌ๋Š” ์ฐฝ์—์„œ ์ž‘์„ฑ๋œ ํ™•์žฅ ํŒŒ์ผ์ด ์žˆ๋Š” ํด๋”๋ฅผ ์„ ํƒํ•˜๊ณ  ์ˆ˜์ง‘์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ค€๋น„๊ฐ€ ๋œ! ์ด์ œ vk.com/away์™€ ๊ฐ™์€ ๋ชจ๋“  ๋งํฌ๊ฐ€ ์›๋ž˜ ๋งํฌ๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค.

๋Œ€์‹  ๊ฒฐ๋ก 

๋ฌผ๋ก  ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์Šคํ…์€ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์‚ฌ๊ธฐ ์‚ฌ์ดํŠธ์—์„œ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์„ ๊ตฌํ•ด ๋ƒˆ์ง€๋งŒ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋งํฌ๋ฅผ ํด๋ฆญํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ๊ถŒ๋ฆฌ๋Š” ์‚ฌ๋žŒ๋“ค ์ž์‹ ์—๊ฒŒ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.
ํŽธ์˜์ƒ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. github.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€