@keplr-wallet/background 0.11.58-rc.0 → 0.11.58

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ class CheckURLIsPhishingMsg extends router_1.Message {
14
14
  validateBasic() {
15
15
  const url = new URL(this.origin);
16
16
  // Will throw an error if url has not second level domain.
17
- utils_1.parseDomainUntilSecondLevel(url.origin);
17
+ utils_1.parseDomain(url.origin);
18
18
  }
19
19
  approveExternal() {
20
20
  return true;
@@ -38,7 +38,7 @@ class URLTempAllowMsg extends router_1.Message {
38
38
  validateBasic() {
39
39
  const url = new URL(this.url);
40
40
  // Will throw an error if url has not second level domain.
41
- utils_1.parseDomainUntilSecondLevel(url.origin);
41
+ utils_1.parseDomain(url.origin);
42
42
  }
43
43
  route() {
44
44
  return constants_1.ROUTE;
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/phishing-list/messages.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,2CAAoC;AACpC,mCAAsD;AAEtD,MAAa,qBAAsB,SAAQ,gBAAgB;IAClD,MAAM,CAAC,IAAI;QAChB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,0DAA0D;QAC1D,mCAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,iBAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACF;AA3BD,sDA2BC;AAED,MAAa,eAAgB,SAAQ,gBAAa;IAKhD,YAA4B,GAAW;QACrC,KAAK,EAAE,CAAC;QADkB,QAAG,GAAH,GAAG,CAAQ;IAEvC,CAAC;IANM,MAAM,CAAC,IAAI;QAChB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAMD,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,0DAA0D;QAC1D,mCAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK;QACH,OAAO,iBAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACF;AAtBD,0CAsBC;AAED,MAAa,oBAAqB,SAAQ,gBAAgB;IAKxD,YAA4B,EAAU;QACpC,KAAK,EAAE,CAAC;QADkB,OAAE,GAAF,EAAE,CAAQ;IAEtC,CAAC;IANM,MAAM,CAAC,IAAI;QAChB,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAMD,aAAa;QACX,OAAO;IACT,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,iBAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,oBAAoB,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;CACF;AAxBD,oDAwBC"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/phishing-list/messages.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,2CAAoC;AACpC,mCAAsC;AAEtC,MAAa,qBAAsB,SAAQ,gBAAgB;IAClD,MAAM,CAAC,IAAI;QAChB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAED;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,0DAA0D;QAC1D,mBAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,iBAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,qBAAqB,CAAC,IAAI,EAAE,CAAC;IACtC,CAAC;CACF;AA3BD,sDA2BC;AAED,MAAa,eAAgB,SAAQ,gBAAa;IAKhD,YAA4B,GAAW;QACrC,KAAK,EAAE,CAAC;QADkB,QAAG,GAAH,GAAG,CAAQ;IAEvC,CAAC;IANM,MAAM,CAAC,IAAI;QAChB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAMD,aAAa;QACX,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,0DAA0D;QAC1D,mBAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,OAAO,iBAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;CACF;AAtBD,0CAsBC;AAED,MAAa,oBAAqB,SAAQ,gBAAgB;IAKxD,YAA4B,EAAU;QACpC,KAAK,EAAE,CAAC;QADkB,OAAE,GAAF,EAAE,CAAQ;IAEtC,CAAC;IANM,MAAM,CAAC,IAAI;QAChB,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAMD,aAAa;QACX,OAAO;IACT,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,iBAAK,CAAC;IACf,CAAC;IAED,IAAI;QACF,OAAO,oBAAoB,CAAC,IAAI,EAAE,CAAC;IACrC,CAAC;CACF;AAxBD,oDAwBC"}
@@ -65,6 +65,11 @@ class IntervalFetcher {
65
65
  class PhishingListService {
66
66
  constructor(opts) {
67
67
  this.opts = opts;
68
+ // If blocked urls is "scam1.com", "scam2.service.com",
69
+ // "scam1.com" and "**.scam1.com" should be blocked.
70
+ // and "scam2.service.com" and "**.scam2.service.com" should be blocked.
71
+ // and "service.com" should be allowed.
72
+ // urls which blocked.
68
73
  this.urlMap = new Map();
69
74
  this.allowedUrlMap = new Map();
70
75
  this.twitterMap = new Map();
@@ -79,7 +84,7 @@ class PhishingListService {
79
84
  const map = new Map();
80
85
  for (const domain of domains) {
81
86
  try {
82
- map.set(utils_1.parseDomainUntilSecondLevel(domain), true);
87
+ map.set(utils_1.parseDomain(domain).join("."), true);
83
88
  }
84
89
  catch (e) {
85
90
  console.log(e);
@@ -121,22 +126,28 @@ class PhishingListService {
121
126
  }
122
127
  }
123
128
  checkURLIsPhishing(url) {
124
- const parsed = utils_1.parseDomainUntilSecondLevel(new URL(url).origin);
125
- if (this.urlMap.get(parsed) === true) {
126
- const allowed = this.allowedUrlMap.get(parsed);
127
- if (allowed &&
128
- allowed + this.opts.allowTimeoutMs >= new Date().getTime()) {
129
- return false;
129
+ const origin = new URL(url).origin;
130
+ const parsed = utils_1.parseDomain(origin);
131
+ while (parsed.length >= 2) {
132
+ const domain = parsed.join(".");
133
+ if (this.urlMap.get(domain) === true) {
134
+ // Allowing url should not be based on subdomain but only allow specific domain.
135
+ const allowed = this.allowedUrlMap.get(utils_1.parseDomain(origin).join("."));
136
+ if (allowed &&
137
+ allowed + this.opts.allowTimeoutMs >= new Date().getTime()) {
138
+ // noop: This url is allowed temporarily
139
+ }
140
+ else {
141
+ return true;
142
+ }
130
143
  }
131
- return true;
132
- }
133
- else {
134
- return false;
144
+ parsed.shift();
135
145
  }
146
+ return false;
136
147
  }
137
148
  allowUrlTemp(url) {
138
149
  const parsed = new URL(url);
139
- this.allowedUrlMap.set(utils_1.parseDomainUntilSecondLevel(parsed.origin), new Date().getTime());
150
+ this.allowedUrlMap.set(utils_1.parseDomain(parsed.origin).join("."), new Date().getTime());
140
151
  }
141
152
  checkBadTwitterId(id) {
142
153
  return this.twitterMap.get(id.replace("@", "").toLowerCase()) === true;
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/phishing-list/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/phishing-list/service.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ const phishings = [
24
24
  "app-keplr-vvallet.tech",
25
25
  "app-keplr-vvallet.host",
26
26
  ];
27
+ const subdomains = ["scam1.service.com", "scam2.service.com"];
27
28
  const createMockServer = () => {
28
29
  let queryCount = 0;
29
30
  const server = http_1.default.createServer((req, resp) => {
@@ -60,9 +61,6 @@ const createMockServer = () => {
60
61
  case 5:
61
62
  phishing = phishing + " , ";
62
63
  break;
63
- case 6:
64
- phishing = "third-domain." + phishing;
65
- break;
66
64
  default:
67
65
  phishing = ` ${phishing} `;
68
66
  }
@@ -71,7 +69,6 @@ const createMockServer = () => {
71
69
  resp.end(str);
72
70
  return;
73
71
  }
74
- // Even if an invalid endpoint exists, only that endpoint should be ignored and proceeded.
75
72
  // When second fetch, add other domain to test fetching interval.
76
73
  if (req.url === "/list3") {
77
74
  resp.writeHead(200);
@@ -97,8 +94,42 @@ const createMockServer = () => {
97
94
  case 5:
98
95
  phishing = phishing + "?test\n";
99
96
  break;
100
- case 6:
101
- phishing = "third-domain." + phishing + "\n";
97
+ default:
98
+ phishing = ` ${phishing} `;
99
+ }
100
+ str += phishing;
101
+ }
102
+ str += ";invalid";
103
+ if (queryCount === 2) {
104
+ str += ";added.domain";
105
+ }
106
+ resp.end(str);
107
+ return;
108
+ }
109
+ if (req.url === "/subdomains") {
110
+ resp.writeHead(200);
111
+ const list = phishings.concat(subdomains);
112
+ let str = "";
113
+ for (let i = 0; i < list.length; i++) {
114
+ let phishing = list[i];
115
+ switch (i) {
116
+ case 0:
117
+ phishing = phishing + "\n";
118
+ break;
119
+ case 1:
120
+ phishing = phishing + ".\n";
121
+ break;
122
+ case 2:
123
+ phishing = "." + phishing + "\r\n";
124
+ break;
125
+ case 3:
126
+ phishing = "invalid;.." + phishing + "..;";
127
+ break;
128
+ case 4:
129
+ phishing = phishing + "/,";
130
+ break;
131
+ case 5:
132
+ phishing = phishing + "?test\n";
102
133
  break;
103
134
  default:
104
135
  phishing = ` ${phishing} `;
@@ -343,7 +374,6 @@ describe("Test phishing list service", () => {
343
374
  // allow temp Url
344
375
  service.allowUrlTemp("https://" + phishing);
345
376
  expect(service.checkURLIsPhishing("https://" + phishing)).toBe(false);
346
- expect(service.checkURLIsPhishing("https://test." + phishing)).toBe(false);
347
377
  // but another url still blocked
348
378
  expect(service.checkURLIsPhishing("https://" + anotherPhishing)).toBe(true);
349
379
  expect(service.checkURLIsPhishing("https://test." + anotherPhishing)).toBe(true);
@@ -354,5 +384,28 @@ describe("Test phishing list service", () => {
354
384
  expect(service.checkURLIsPhishing("https://" + anotherPhishing)).toBe(true);
355
385
  expect(service.checkURLIsPhishing("https://test." + anotherPhishing)).toBe(true);
356
386
  }));
387
+ test("Test subdomains", () => __awaiter(void 0, void 0, void 0, function* () {
388
+ const service = new service_1.PhishingListService({
389
+ blockListUrl: `http://127.0.0.1:${port}/subdomains`,
390
+ fetchingIntervalMs: 200,
391
+ retryIntervalMs: 100,
392
+ allowTimeoutMs: 100,
393
+ });
394
+ eachService = service;
395
+ service.init();
396
+ yield waitServiceInit(service);
397
+ testCheckURLIsPhishing(service);
398
+ expect(service.checkURLIsPhishing("https://service.com")).toBe(false);
399
+ expect(service.checkURLIsPhishing("https://scam1.service.com")).toBe(true);
400
+ expect(service.checkURLIsPhishing("https://scam2.service.com")).toBe(true);
401
+ // allow temp Url
402
+ service.allowUrlTemp("https://service.com");
403
+ expect(service.checkURLIsPhishing("https://scam1.service.com")).toBe(true);
404
+ expect(service.checkURLIsPhishing("https://scam2.service.com")).toBe(true);
405
+ // allow temp Url
406
+ service.allowUrlTemp("https://scam1.service.com");
407
+ expect(service.checkURLIsPhishing("https://scam1.service.com")).toBe(false);
408
+ expect(service.checkURLIsPhishing("https://scam2.service.com")).toBe(true);
409
+ }));
357
410
  });
358
411
  //# sourceMappingURL=service.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.spec.js","sourceRoot":"","sources":["../../src/phishing-list/service.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.spec.js","sourceRoot":"","sources":["../../src/phishing-list/service.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function parseDomainUntilSecondLevel(param: string): string;
1
+ export declare function parseDomain(param: string): string[];
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseDomainUntilSecondLevel = void 0;
4
- function parseDomainUntilSecondLevel(param) {
3
+ exports.parseDomain = void 0;
4
+ function parseDomain(param) {
5
5
  let domain = param;
6
6
  if (domain.match(/^[a-zA-Z0-9-]+:\/\/.+$/)) {
7
7
  domain = domain.replace(/^[a-zA-Z0-9-]+:\/\//, "");
@@ -25,7 +25,7 @@ function parseDomainUntilSecondLevel(param) {
25
25
  if (i >= 0) {
26
26
  split[split.length - 1] = split[split.length - 1].slice(0, i);
27
27
  }
28
- return split[split.length - 2] + "." + split[split.length - 1];
28
+ return split;
29
29
  }
30
- exports.parseDomainUntilSecondLevel = parseDomainUntilSecondLevel;
30
+ exports.parseDomain = parseDomain;
31
31
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/phishing-list/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,2BAA2B,CAAC,KAAa;IACvD,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,IAAI,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE;QAC1C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;KACpD;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,IAAI,CAAC,EAAE;QACd,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KACjC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,IAAI,CAAC,EAAE;QACd,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KACjC;IAED,MAAM,KAAK,GAAG,MAAM;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;KAC7C;IAED,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,IAAI,CAAC,EAAE;QACV,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC/D;IAED,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC;AA/BD,kEA+BC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/phishing-list/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,WAAW,CAAC,KAAa;IACvC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,IAAI,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,EAAE;QAC1C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;KACpD;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,IAAI,CAAC,EAAE;QACd,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KACjC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,IAAI,CAAC,EAAE;QACd,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;KACjC;IAED,MAAM,KAAK,GAAG,MAAM;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAC;KAC7C;IAED,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,IAAI,CAAC,EAAE;QACV,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC/D;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AA/BD,kCA+BC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("./utils");
4
4
  describe("Test phishing list service utils", () => {
5
- test("Test parseDomainUntilSecondLevel", () => {
5
+ test("Test parseDomain", () => {
6
6
  const tests = [
7
7
  {
8
8
  url: "",
@@ -54,11 +54,11 @@ describe("Test phishing list service utils", () => {
54
54
  },
55
55
  {
56
56
  url: "asd.test.com.",
57
- expect: "test.com",
57
+ expect: "asd.test.com",
58
58
  },
59
59
  {
60
60
  url: "asd..test.com.",
61
- expect: "test.com",
61
+ expect: "asd.test.com",
62
62
  },
63
63
  {
64
64
  url: "http://",
@@ -106,15 +106,15 @@ describe("Test phishing list service utils", () => {
106
106
  },
107
107
  {
108
108
  url: "https://asd.test.com.",
109
- expect: "test.com",
109
+ expect: "asd.test.com",
110
110
  },
111
111
  {
112
112
  url: "https://asd..test.com.",
113
- expect: "test.com",
113
+ expect: "asd.test.com",
114
114
  },
115
115
  {
116
116
  url: "https://asd..test.com:999.",
117
- expect: "test.com",
117
+ expect: "asd.test.com",
118
118
  },
119
119
  {
120
120
  url: "chrome-extension://hajcclbibbmagnhankhjinooiploogfm/_generated_background_page.html",
@@ -139,10 +139,10 @@ describe("Test phishing list service utils", () => {
139
139
  ];
140
140
  for (const test of tests) {
141
141
  if ("invalid" in test) {
142
- expect(() => utils_1.parseDomainUntilSecondLevel(test.url)).toThrow();
142
+ expect(() => utils_1.parseDomain(test.url)).toThrow();
143
143
  }
144
144
  else {
145
- expect(utils_1.parseDomainUntilSecondLevel(test.url)).toBe(test.expect);
145
+ expect(utils_1.parseDomain(test.url).join(".")).toBe(test.expect);
146
146
  }
147
147
  }
148
148
  });
@@ -1 +1 @@
1
- {"version":3,"file":"utils.spec.js","sourceRoot":"","sources":["../../src/phishing-list/utils.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.spec.js","sourceRoot":"","sources":["../../src/phishing-list/utils.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keplr-wallet/background",
3
- "version": "0.11.58-rc.0",
3
+ "version": "0.11.58",
4
4
  "main": "build/index.js",
5
5
  "author": "chainapsis",
6
6
  "license": "Apache-2.0",
@@ -32,16 +32,16 @@
32
32
  "@ethersproject/hash": "^5.7.0",
33
33
  "@ethersproject/transactions": "^5.7.0",
34
34
  "@ethersproject/wallet": "^5.7.0",
35
- "@keplr-wallet/chain-validator": "0.11.58-rc.0",
36
- "@keplr-wallet/common": "0.11.58-rc.0",
37
- "@keplr-wallet/cosmos": "0.11.58-rc.0",
38
- "@keplr-wallet/crypto": "0.11.58-rc.0",
39
- "@keplr-wallet/ledger-cosmos": "0.11.58-rc.0",
40
- "@keplr-wallet/popup": "0.11.58-rc.0",
41
- "@keplr-wallet/proto-types": "0.11.58-rc.0",
42
- "@keplr-wallet/router": "0.11.58-rc.0",
43
- "@keplr-wallet/types": "0.11.58-rc.0",
44
- "@keplr-wallet/unit": "0.11.58-rc.0",
35
+ "@keplr-wallet/chain-validator": "0.11.58",
36
+ "@keplr-wallet/common": "0.11.58",
37
+ "@keplr-wallet/cosmos": "0.11.58",
38
+ "@keplr-wallet/crypto": "0.11.58",
39
+ "@keplr-wallet/ledger-cosmos": "0.11.58",
40
+ "@keplr-wallet/popup": "0.11.58",
41
+ "@keplr-wallet/proto-types": "0.11.58",
42
+ "@keplr-wallet/router": "0.11.58",
43
+ "@keplr-wallet/types": "0.11.58",
44
+ "@keplr-wallet/unit": "0.11.58",
45
45
  "@keystonehq/base-eth-keyring": "^0.6.4",
46
46
  "@keystonehq/bc-ur-registry": "^0.5.1",
47
47
  "@keystonehq/bc-ur-registry-cosmos": "^0.1.1",
@@ -65,5 +65,5 @@
65
65
  "secretjs": "0.17.7",
66
66
  "utility-types": "^3.10.0"
67
67
  },
68
- "gitHead": "fd9d1af532eaaa12ec0f92f9f2decf25e8406067"
68
+ "gitHead": "89aee6af3b85332fa5dc130e1e97b84e05290461"
69
69
  }
@@ -1,6 +1,6 @@
1
1
  import { Message } from "@keplr-wallet/router";
2
2
  import { ROUTE } from "./constants";
3
- import { parseDomainUntilSecondLevel } from "./utils";
3
+ import { parseDomain } from "./utils";
4
4
 
5
5
  export class CheckURLIsPhishingMsg extends Message<boolean> {
6
6
  public static type() {
@@ -15,7 +15,7 @@ export class CheckURLIsPhishingMsg extends Message<boolean> {
15
15
  const url = new URL(this.origin);
16
16
 
17
17
  // Will throw an error if url has not second level domain.
18
- parseDomainUntilSecondLevel(url.origin);
18
+ parseDomain(url.origin);
19
19
  }
20
20
 
21
21
  approveExternal(): boolean {
@@ -43,7 +43,7 @@ export class URLTempAllowMsg extends Message<void> {
43
43
  validateBasic(): void {
44
44
  const url = new URL(this.url);
45
45
  // Will throw an error if url has not second level domain.
46
- parseDomainUntilSecondLevel(url.origin);
46
+ parseDomain(url.origin);
47
47
  }
48
48
 
49
49
  route(): string {
@@ -12,6 +12,8 @@ const phishings = [
12
12
  "app-keplr-vvallet.host",
13
13
  ];
14
14
 
15
+ const subdomains = ["scam1.service.com", "scam2.service.com"];
16
+
15
17
  const createMockServer = () => {
16
18
  let queryCount = 0;
17
19
 
@@ -52,9 +54,6 @@ const createMockServer = () => {
52
54
  case 5:
53
55
  phishing = phishing + " , ";
54
56
  break;
55
- case 6:
56
- phishing = "third-domain." + phishing;
57
- break;
58
57
  default:
59
58
  phishing = ` ${phishing} `;
60
59
  }
@@ -65,7 +64,6 @@ const createMockServer = () => {
65
64
  return;
66
65
  }
67
66
 
68
- // Even if an invalid endpoint exists, only that endpoint should be ignored and proceeded.
69
67
  // When second fetch, add other domain to test fetching interval.
70
68
  if (req.url === "/list3") {
71
69
  resp.writeHead(200);
@@ -92,8 +90,47 @@ const createMockServer = () => {
92
90
  case 5:
93
91
  phishing = phishing + "?test\n";
94
92
  break;
95
- case 6:
96
- phishing = "third-domain." + phishing + "\n";
93
+ default:
94
+ phishing = ` ${phishing} `;
95
+ }
96
+
97
+ str += phishing;
98
+ }
99
+ str += ";invalid";
100
+
101
+ if (queryCount === 2) {
102
+ str += ";added.domain";
103
+ }
104
+
105
+ resp.end(str);
106
+ return;
107
+ }
108
+
109
+ if (req.url === "/subdomains") {
110
+ resp.writeHead(200);
111
+ const list = phishings.concat(subdomains);
112
+ let str = "";
113
+ for (let i = 0; i < list.length; i++) {
114
+ let phishing = list[i];
115
+
116
+ switch (i) {
117
+ case 0:
118
+ phishing = phishing + "\n";
119
+ break;
120
+ case 1:
121
+ phishing = phishing + ".\n";
122
+ break;
123
+ case 2:
124
+ phishing = "." + phishing + "\r\n";
125
+ break;
126
+ case 3:
127
+ phishing = "invalid;.." + phishing + "..;";
128
+ break;
129
+ case 4:
130
+ phishing = phishing + "/,";
131
+ break;
132
+ case 5:
133
+ phishing = phishing + "?test\n";
97
134
  break;
98
135
  default:
99
136
  phishing = ` ${phishing} `;
@@ -421,7 +458,6 @@ describe("Test phishing list service", () => {
421
458
  // allow temp Url
422
459
  service.allowUrlTemp("https://" + phishing);
423
460
  expect(service.checkURLIsPhishing("https://" + phishing)).toBe(false);
424
- expect(service.checkURLIsPhishing("https://test." + phishing)).toBe(false);
425
461
  // but another url still blocked
426
462
  expect(service.checkURLIsPhishing("https://" + anotherPhishing)).toBe(true);
427
463
  expect(service.checkURLIsPhishing("https://test." + anotherPhishing)).toBe(
@@ -438,4 +474,33 @@ describe("Test phishing list service", () => {
438
474
  true
439
475
  );
440
476
  });
477
+
478
+ test("Test subdomains", async () => {
479
+ const service = new PhishingListService({
480
+ blockListUrl: `http://127.0.0.1:${port}/subdomains`,
481
+ fetchingIntervalMs: 200,
482
+ retryIntervalMs: 100,
483
+ allowTimeoutMs: 100,
484
+ });
485
+ eachService = service;
486
+
487
+ service.init();
488
+
489
+ await waitServiceInit(service);
490
+
491
+ testCheckURLIsPhishing(service);
492
+
493
+ expect(service.checkURLIsPhishing("https://service.com")).toBe(false);
494
+ expect(service.checkURLIsPhishing("https://scam1.service.com")).toBe(true);
495
+ expect(service.checkURLIsPhishing("https://scam2.service.com")).toBe(true);
496
+
497
+ // allow temp Url
498
+ service.allowUrlTemp("https://service.com");
499
+ expect(service.checkURLIsPhishing("https://scam1.service.com")).toBe(true);
500
+ expect(service.checkURLIsPhishing("https://scam2.service.com")).toBe(true);
501
+ // allow temp Url
502
+ service.allowUrlTemp("https://scam1.service.com");
503
+ expect(service.checkURLIsPhishing("https://scam1.service.com")).toBe(false);
504
+ expect(service.checkURLIsPhishing("https://scam2.service.com")).toBe(true);
505
+ });
441
506
  });
@@ -1,5 +1,5 @@
1
1
  import Axios, { AxiosResponse } from "axios";
2
- import { parseDomainUntilSecondLevel } from "./utils";
2
+ import { parseDomain } from "./utils";
3
3
 
4
4
  class IntervalFetcher<R> {
5
5
  protected _hasInited: boolean = false;
@@ -66,6 +66,11 @@ class IntervalFetcher<R> {
66
66
  }
67
67
 
68
68
  export class PhishingListService {
69
+ // If blocked urls is "scam1.com", "scam2.service.com",
70
+ // "scam1.com" and "**.scam1.com" should be blocked.
71
+ // and "scam2.service.com" and "**.scam2.service.com" should be blocked.
72
+ // and "service.com" should be allowed.
73
+ // urls which blocked.
69
74
  protected urlMap: Map<string, boolean> = new Map();
70
75
  protected readonly allowedUrlMap: Map<string, number> = new Map();
71
76
 
@@ -101,7 +106,7 @@ export class PhishingListService {
101
106
 
102
107
  for (const domain of domains) {
103
108
  try {
104
- map.set(parseDomainUntilSecondLevel(domain), true);
109
+ map.set(parseDomain(domain).join("."), true);
105
110
  } catch (e) {
106
111
  console.log(e);
107
112
  }
@@ -159,25 +164,32 @@ export class PhishingListService {
159
164
  }
160
165
 
161
166
  checkURLIsPhishing(url: string): boolean {
162
- const parsed = parseDomainUntilSecondLevel(new URL(url).origin);
163
- if (this.urlMap.get(parsed) === true) {
164
- const allowed = this.allowedUrlMap.get(parsed);
165
- if (
166
- allowed &&
167
- allowed + this.opts.allowTimeoutMs >= new Date().getTime()
168
- ) {
169
- return false;
167
+ const origin = new URL(url).origin;
168
+ const parsed = parseDomain(origin);
169
+ while (parsed.length >= 2) {
170
+ const domain = parsed.join(".");
171
+ if (this.urlMap.get(domain) === true) {
172
+ // Allowing url should not be based on subdomain but only allow specific domain.
173
+ const allowed = this.allowedUrlMap.get(parseDomain(origin).join("."));
174
+ if (
175
+ allowed &&
176
+ allowed + this.opts.allowTimeoutMs >= new Date().getTime()
177
+ ) {
178
+ // noop: This url is allowed temporarily
179
+ } else {
180
+ return true;
181
+ }
170
182
  }
171
- return true;
172
- } else {
173
- return false;
183
+
184
+ parsed.shift();
174
185
  }
186
+ return false;
175
187
  }
176
188
 
177
189
  allowUrlTemp(url: string): void {
178
190
  const parsed = new URL(url);
179
191
  this.allowedUrlMap.set(
180
- parseDomainUntilSecondLevel(parsed.origin),
192
+ parseDomain(parsed.origin).join("."),
181
193
  new Date().getTime()
182
194
  );
183
195
  }
@@ -1,7 +1,7 @@
1
- import { parseDomainUntilSecondLevel } from "./utils";
1
+ import { parseDomain } from "./utils";
2
2
 
3
3
  describe("Test phishing list service utils", () => {
4
- test("Test parseDomainUntilSecondLevel", () => {
4
+ test("Test parseDomain", () => {
5
5
  const tests: ({
6
6
  url: string;
7
7
  } & ({ expect: string } | { invalid: true }))[] = [
@@ -55,11 +55,11 @@ describe("Test phishing list service utils", () => {
55
55
  },
56
56
  {
57
57
  url: "asd.test.com.",
58
- expect: "test.com",
58
+ expect: "asd.test.com",
59
59
  },
60
60
  {
61
61
  url: "asd..test.com.",
62
- expect: "test.com",
62
+ expect: "asd.test.com",
63
63
  },
64
64
  {
65
65
  url: "http://",
@@ -107,15 +107,15 @@ describe("Test phishing list service utils", () => {
107
107
  },
108
108
  {
109
109
  url: "https://asd.test.com.",
110
- expect: "test.com",
110
+ expect: "asd.test.com",
111
111
  },
112
112
  {
113
113
  url: "https://asd..test.com.",
114
- expect: "test.com",
114
+ expect: "asd.test.com",
115
115
  },
116
116
  {
117
117
  url: "https://asd..test.com:999.",
118
- expect: "test.com",
118
+ expect: "asd.test.com",
119
119
  },
120
120
  {
121
121
  url:
@@ -143,9 +143,9 @@ describe("Test phishing list service utils", () => {
143
143
 
144
144
  for (const test of tests) {
145
145
  if ("invalid" in test) {
146
- expect(() => parseDomainUntilSecondLevel(test.url)).toThrow();
146
+ expect(() => parseDomain(test.url)).toThrow();
147
147
  } else {
148
- expect(parseDomainUntilSecondLevel(test.url)).toBe(test.expect);
148
+ expect(parseDomain(test.url).join(".")).toBe(test.expect);
149
149
  }
150
150
  }
151
151
  });
@@ -1,4 +1,4 @@
1
- export function parseDomainUntilSecondLevel(param: string): string {
1
+ export function parseDomain(param: string): string[] {
2
2
  let domain = param;
3
3
 
4
4
  if (domain.match(/^[a-zA-Z0-9-]+:\/\/.+$/)) {
@@ -28,5 +28,5 @@ export function parseDomainUntilSecondLevel(param: string): string {
28
28
  split[split.length - 1] = split[split.length - 1].slice(0, i);
29
29
  }
30
30
 
31
- return split[split.length - 2] + "." + split[split.length - 1];
31
+ return split;
32
32
  }