@eggjs/security 4.0.1 → 5.0.0-beta.17
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.
- package/README.md +46 -66
- package/README.zh-CN.md +56 -68
- package/dist/agent.d.ts +10 -0
- package/dist/agent.js +15 -0
- package/dist/app/extend/agent.d.ts +9 -0
- package/dist/app/extend/agent.js +12 -0
- package/dist/app/extend/application.d.ts +12 -0
- package/dist/app/extend/application.js +32 -0
- package/dist/app/extend/context.d.ts +61 -0
- package/dist/app/extend/context.js +191 -0
- package/dist/app/extend/helper.d.ts +24 -0
- package/dist/app/extend/helper.js +7 -0
- package/dist/app/extend/response.d.ts +39 -0
- package/dist/app/extend/response.js +70 -0
- package/dist/app/middleware/securities.d.ts +8 -0
- package/dist/app/middleware/securities.js +39 -0
- package/dist/app.d.ts +10 -0
- package/dist/app.js +24 -0
- package/dist/config/config.default.d.ts +870 -0
- package/dist/config/config.default.js +166 -0
- package/dist/config/config.local.d.ts +6 -0
- package/dist/config/config.local.js +5 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +5 -0
- package/dist/lib/extend/safe_curl.d.ts +20 -0
- package/dist/lib/extend/safe_curl.js +19 -0
- package/dist/lib/helper/cliFilter.d.ts +7 -0
- package/dist/lib/helper/cliFilter.js +18 -0
- package/dist/lib/helper/escape.d.ts +2 -0
- package/dist/lib/helper/escape.js +7 -0
- package/dist/lib/helper/escapeShellArg.d.ts +4 -0
- package/dist/lib/helper/escapeShellArg.js +7 -0
- package/dist/lib/helper/escapeShellCmd.d.ts +4 -0
- package/dist/lib/helper/escapeShellCmd.js +15 -0
- package/dist/lib/helper/index.d.ts +24 -0
- package/dist/lib/helper/index.js +25 -0
- package/dist/lib/helper/shtml.d.ts +6 -0
- package/dist/lib/helper/shtml.js +53 -0
- package/dist/lib/helper/sjs.d.ts +7 -0
- package/dist/lib/helper/sjs.js +36 -0
- package/dist/lib/helper/sjson.d.ts +4 -0
- package/dist/lib/helper/sjson.js +32 -0
- package/dist/lib/helper/spath.d.ts +7 -0
- package/dist/lib/helper/spath.js +16 -0
- package/dist/lib/helper/surl.d.ts +6 -0
- package/dist/lib/helper/surl.js +25 -0
- package/dist/lib/middlewares/csp.d.ts +7 -0
- package/dist/lib/middlewares/csp.js +46 -0
- package/dist/lib/middlewares/csrf.d.ts +7 -0
- package/dist/lib/middlewares/csrf.js +33 -0
- package/dist/lib/middlewares/dta.d.ts +6 -0
- package/dist/lib/middlewares/dta.js +13 -0
- package/dist/lib/middlewares/hsts.d.ts +7 -0
- package/dist/lib/middlewares/hsts.js +19 -0
- package/dist/lib/middlewares/index.d.ts +18 -0
- package/dist/lib/middlewares/index.js +27 -0
- package/dist/lib/middlewares/methodnoallow.d.ts +6 -0
- package/dist/lib/middlewares/methodnoallow.js +15 -0
- package/dist/lib/middlewares/noopen.d.ts +7 -0
- package/dist/lib/middlewares/noopen.js +17 -0
- package/dist/lib/middlewares/nosniff.d.ts +7 -0
- package/dist/lib/middlewares/nosniff.js +27 -0
- package/dist/lib/middlewares/referrerPolicy.d.ts +7 -0
- package/dist/lib/middlewares/referrerPolicy.js +31 -0
- package/dist/lib/middlewares/xframe.d.ts +7 -0
- package/dist/lib/middlewares/xframe.js +18 -0
- package/dist/lib/middlewares/xssProtection.d.ts +7 -0
- package/dist/lib/middlewares/xssProtection.js +17 -0
- package/dist/lib/utils.d.ts +24 -0
- package/dist/lib/utils.js +127 -0
- package/dist/types.d.ts +38 -0
- package/dist/types.js +1 -0
- package/package.json +75 -71
- package/dist/commonjs/agent.d.ts +0 -6
- package/dist/commonjs/agent.js +0 -14
- package/dist/commonjs/app/extend/agent.d.ts +0 -5
- package/dist/commonjs/app/extend/agent.js +0 -11
- package/dist/commonjs/app/extend/application.d.ts +0 -16
- package/dist/commonjs/app/extend/application.js +0 -35
- package/dist/commonjs/app/extend/context.d.ts +0 -68
- package/dist/commonjs/app/extend/context.js +0 -283
- package/dist/commonjs/app/extend/helper.d.ts +0 -12
- package/dist/commonjs/app/extend/helper.js +0 -10
- package/dist/commonjs/app/extend/response.d.ts +0 -41
- package/dist/commonjs/app/extend/response.js +0 -85
- package/dist/commonjs/app/middleware/securities.d.ts +0 -4
- package/dist/commonjs/app/middleware/securities.js +0 -55
- package/dist/commonjs/app.d.ts +0 -6
- package/dist/commonjs/app.js +0 -29
- package/dist/commonjs/config/config.default.d.ts +0 -871
- package/dist/commonjs/config/config.default.js +0 -357
- package/dist/commonjs/config/config.local.d.ts +0 -5
- package/dist/commonjs/config/config.local.js +0 -10
- package/dist/commonjs/index.d.ts +0 -1
- package/dist/commonjs/index.js +0 -4
- package/dist/commonjs/lib/extend/safe_curl.d.ts +0 -16
- package/dist/commonjs/lib/extend/safe_curl.js +0 -28
- package/dist/commonjs/lib/helper/cliFilter.d.ts +0 -4
- package/dist/commonjs/lib/helper/cliFilter.js +0 -20
- package/dist/commonjs/lib/helper/escape.d.ts +0 -2
- package/dist/commonjs/lib/helper/escape.js +0 -8
- package/dist/commonjs/lib/helper/escapeShellArg.d.ts +0 -1
- package/dist/commonjs/lib/helper/escapeShellArg.js +0 -8
- package/dist/commonjs/lib/helper/escapeShellCmd.d.ts +0 -1
- package/dist/commonjs/lib/helper/escapeShellCmd.js +0 -17
- package/dist/commonjs/lib/helper/index.d.ts +0 -21
- package/dist/commonjs/lib/helper/index.js +0 -26
- package/dist/commonjs/lib/helper/shtml.d.ts +0 -2
- package/dist/commonjs/lib/helper/shtml.js +0 -76
- package/dist/commonjs/lib/helper/sjs.d.ts +0 -4
- package/dist/commonjs/lib/helper/sjs.js +0 -52
- package/dist/commonjs/lib/helper/sjson.d.ts +0 -1
- package/dist/commonjs/lib/helper/sjson.js +0 -45
- package/dist/commonjs/lib/helper/spath.d.ts +0 -5
- package/dist/commonjs/lib/helper/spath.js +0 -28
- package/dist/commonjs/lib/helper/surl.d.ts +0 -2
- package/dist/commonjs/lib/helper/surl.js +0 -33
- package/dist/commonjs/lib/middlewares/csp.d.ts +0 -4
- package/dist/commonjs/lib/middlewares/csp.js +0 -68
- package/dist/commonjs/lib/middlewares/csrf.d.ts +0 -4
- package/dist/commonjs/lib/middlewares/csrf.js +0 -42
- package/dist/commonjs/lib/middlewares/dta.d.ts +0 -3
- package/dist/commonjs/lib/middlewares/dta.js +0 -14
- package/dist/commonjs/lib/middlewares/hsts.d.ts +0 -4
- package/dist/commonjs/lib/middlewares/hsts.js +0 -23
- package/dist/commonjs/lib/middlewares/index.d.ts +0 -13
- package/dist/commonjs/lib/middlewares/index.js +0 -28
- package/dist/commonjs/lib/middlewares/methodnoallow.d.ts +0 -3
- package/dist/commonjs/lib/middlewares/methodnoallow.js +0 -22
- package/dist/commonjs/lib/middlewares/noopen.d.ts +0 -4
- package/dist/commonjs/lib/middlewares/noopen.js +0 -17
- package/dist/commonjs/lib/middlewares/nosniff.d.ts +0 -4
- package/dist/commonjs/lib/middlewares/nosniff.js +0 -30
- package/dist/commonjs/lib/middlewares/referrerPolicy.d.ts +0 -4
- package/dist/commonjs/lib/middlewares/referrerPolicy.js +0 -36
- package/dist/commonjs/lib/middlewares/xframe.d.ts +0 -4
- package/dist/commonjs/lib/middlewares/xframe.js +0 -19
- package/dist/commonjs/lib/middlewares/xssProtection.d.ts +0 -4
- package/dist/commonjs/lib/middlewares/xssProtection.js +0 -16
- package/dist/commonjs/lib/utils.d.ts +0 -19
- package/dist/commonjs/lib/utils.js +0 -206
- package/dist/commonjs/package.json +0 -3
- package/dist/commonjs/types.d.ts +0 -10
- package/dist/commonjs/types.js +0 -5
- package/dist/esm/agent.d.ts +0 -6
- package/dist/esm/agent.js +0 -11
- package/dist/esm/app/extend/agent.d.ts +0 -5
- package/dist/esm/app/extend/agent.js +0 -8
- package/dist/esm/app/extend/application.d.ts +0 -16
- package/dist/esm/app/extend/application.js +0 -32
- package/dist/esm/app/extend/context.d.ts +0 -68
- package/dist/esm/app/extend/context.js +0 -244
- package/dist/esm/app/extend/helper.d.ts +0 -12
- package/dist/esm/app/extend/helper.js +0 -5
- package/dist/esm/app/extend/response.d.ts +0 -41
- package/dist/esm/app/extend/response.js +0 -82
- package/dist/esm/app/middleware/securities.d.ts +0 -4
- package/dist/esm/app/middleware/securities.js +0 -50
- package/dist/esm/app.d.ts +0 -6
- package/dist/esm/app.js +0 -26
- package/dist/esm/config/config.default.d.ts +0 -871
- package/dist/esm/config/config.default.js +0 -351
- package/dist/esm/config/config.local.d.ts +0 -5
- package/dist/esm/config/config.local.js +0 -8
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.js +0 -2
- package/dist/esm/lib/extend/safe_curl.d.ts +0 -16
- package/dist/esm/lib/extend/safe_curl.js +0 -25
- package/dist/esm/lib/helper/cliFilter.d.ts +0 -4
- package/dist/esm/lib/helper/cliFilter.js +0 -17
- package/dist/esm/lib/helper/escape.d.ts +0 -2
- package/dist/esm/lib/helper/escape.js +0 -3
- package/dist/esm/lib/helper/escapeShellArg.d.ts +0 -1
- package/dist/esm/lib/helper/escapeShellArg.js +0 -5
- package/dist/esm/lib/helper/escapeShellCmd.d.ts +0 -1
- package/dist/esm/lib/helper/escapeShellCmd.js +0 -14
- package/dist/esm/lib/helper/index.d.ts +0 -21
- package/dist/esm/lib/helper/index.js +0 -21
- package/dist/esm/lib/helper/shtml.d.ts +0 -2
- package/dist/esm/lib/helper/shtml.js +0 -70
- package/dist/esm/lib/helper/sjs.d.ts +0 -4
- package/dist/esm/lib/helper/sjs.js +0 -49
- package/dist/esm/lib/helper/sjson.d.ts +0 -1
- package/dist/esm/lib/helper/sjson.js +0 -39
- package/dist/esm/lib/helper/spath.d.ts +0 -5
- package/dist/esm/lib/helper/spath.js +0 -25
- package/dist/esm/lib/helper/surl.d.ts +0 -2
- package/dist/esm/lib/helper/surl.js +0 -30
- package/dist/esm/lib/middlewares/csp.d.ts +0 -4
- package/dist/esm/lib/middlewares/csp.js +0 -63
- package/dist/esm/lib/middlewares/csrf.d.ts +0 -4
- package/dist/esm/lib/middlewares/csrf.js +0 -37
- package/dist/esm/lib/middlewares/dta.d.ts +0 -3
- package/dist/esm/lib/middlewares/dta.js +0 -12
- package/dist/esm/lib/middlewares/hsts.d.ts +0 -4
- package/dist/esm/lib/middlewares/hsts.js +0 -21
- package/dist/esm/lib/middlewares/index.d.ts +0 -13
- package/dist/esm/lib/middlewares/index.js +0 -23
- package/dist/esm/lib/middlewares/methodnoallow.d.ts +0 -3
- package/dist/esm/lib/middlewares/methodnoallow.js +0 -20
- package/dist/esm/lib/middlewares/noopen.d.ts +0 -4
- package/dist/esm/lib/middlewares/noopen.js +0 -15
- package/dist/esm/lib/middlewares/nosniff.d.ts +0 -4
- package/dist/esm/lib/middlewares/nosniff.js +0 -28
- package/dist/esm/lib/middlewares/referrerPolicy.d.ts +0 -4
- package/dist/esm/lib/middlewares/referrerPolicy.js +0 -34
- package/dist/esm/lib/middlewares/xframe.d.ts +0 -4
- package/dist/esm/lib/middlewares/xframe.js +0 -17
- package/dist/esm/lib/middlewares/xssProtection.d.ts +0 -4
- package/dist/esm/lib/middlewares/xssProtection.js +0 -14
- package/dist/esm/lib/utils.d.ts +0 -19
- package/dist/esm/lib/utils.js +0 -194
- package/dist/esm/package.json +0 -3
- package/dist/esm/types.d.ts +0 -10
- package/dist/esm/types.js +0 -3
- package/dist/package.json +0 -4
- package/src/agent.ts +0 -14
- package/src/app/extend/agent.ts +0 -14
- package/src/app/extend/application.ts +0 -51
- package/src/app/extend/context.ts +0 -285
- package/src/app/extend/helper.ts +0 -5
- package/src/app/extend/response.ts +0 -95
- package/src/app/middleware/securities.ts +0 -63
- package/src/app.ts +0 -31
- package/src/config/config.default.ts +0 -379
- package/src/config/config.local.ts +0 -9
- package/src/index.ts +0 -1
- package/src/lib/extend/safe_curl.ts +0 -35
- package/src/lib/helper/cliFilter.ts +0 -20
- package/src/lib/helper/escape.ts +0 -3
- package/src/lib/helper/escapeShellArg.ts +0 -4
- package/src/lib/helper/escapeShellCmd.ts +0 -16
- package/src/lib/helper/index.ts +0 -21
- package/src/lib/helper/shtml.ts +0 -77
- package/src/lib/helper/sjs.ts +0 -57
- package/src/lib/helper/sjson.ts +0 -35
- package/src/lib/helper/spath.ts +0 -27
- package/src/lib/helper/surl.ts +0 -35
- package/src/lib/middlewares/csp.ts +0 -70
- package/src/lib/middlewares/csrf.ts +0 -44
- package/src/lib/middlewares/dta.ts +0 -13
- package/src/lib/middlewares/hsts.ts +0 -24
- package/src/lib/middlewares/index.ts +0 -23
- package/src/lib/middlewares/methodnoallow.ts +0 -23
- package/src/lib/middlewares/noopen.ts +0 -18
- package/src/lib/middlewares/nosniff.ts +0 -32
- package/src/lib/middlewares/referrerPolicy.ts +0 -39
- package/src/lib/middlewares/xframe.ts +0 -20
- package/src/lib/middlewares/xssProtection.ts +0 -17
- package/src/lib/utils.ts +0 -208
- package/src/types.ts +0 -16
- package/src/typings/index.d.ts +0 -4
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
declare const _default: {
|
|
2
|
-
cliFilter: typeof import("../../lib/helper/cliFilter.js").default;
|
|
3
|
-
escape: typeof import("escape-html");
|
|
4
|
-
escapeShellArg: typeof import("../../lib/helper/escapeShellArg.js").default;
|
|
5
|
-
escapeShellCmd: typeof import("../../lib/helper/escapeShellCmd.js").default;
|
|
6
|
-
shtml: typeof import("../../lib/helper/shtml.js").default;
|
|
7
|
-
sjs: typeof import("../../lib/helper/sjs.js").default;
|
|
8
|
-
sjson: typeof import("../../lib/helper/sjson.js").default;
|
|
9
|
-
spath: typeof import("../../lib/helper/spath.js").default;
|
|
10
|
-
surl: typeof import("../../lib/helper/surl.js").default;
|
|
11
|
-
};
|
|
12
|
-
export default _default;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const index_js_1 = __importDefault(require("../../lib/helper/index.js"));
|
|
7
|
-
exports.default = {
|
|
8
|
-
...index_js_1.default,
|
|
9
|
-
};
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9leHRlbmQvaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseUVBQWdEO0FBRWhELGtCQUFlO0lBQ2IsR0FBRyxrQkFBTztDQUNYLENBQUMifQ==
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { Response as KoaResponse } from '@eggjs/core';
|
|
2
|
-
import SecurityContext from './context.js';
|
|
3
|
-
export default class SecurityResponse extends KoaResponse {
|
|
4
|
-
ctx: SecurityContext;
|
|
5
|
-
/**
|
|
6
|
-
* This is an unsafe redirection, and we WON'T check if the
|
|
7
|
-
* destination url is safe or not.
|
|
8
|
-
* Please DO NOT use this method unless in some very special cases,
|
|
9
|
-
* otherwise there may be security vulnerabilities.
|
|
10
|
-
*
|
|
11
|
-
* @function Response#unsafeRedirect
|
|
12
|
-
* @param {String} url URL to forward
|
|
13
|
-
* @example
|
|
14
|
-
* ```js
|
|
15
|
-
* ctx.response.unsafeRedirect('http://www.domain.com');
|
|
16
|
-
* ctx.unsafeRedirect('http://www.domain.com');
|
|
17
|
-
* ```
|
|
18
|
-
*/
|
|
19
|
-
unsafeRedirect(url: string, alt?: string): void;
|
|
20
|
-
/**
|
|
21
|
-
* A safe redirection, and we'll check if the URL is in
|
|
22
|
-
* a safe domain or not.
|
|
23
|
-
* We've overridden the default Koa's implementation by adding a
|
|
24
|
-
* white list as the filter for that.
|
|
25
|
-
*
|
|
26
|
-
* @function Response#redirect
|
|
27
|
-
* @param {String} url URL to forward
|
|
28
|
-
* @example
|
|
29
|
-
* ```js
|
|
30
|
-
* ctx.response.redirect('/login');
|
|
31
|
-
* ctx.redirect('/login');
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
redirect(url: string, alt?: string): void;
|
|
35
|
-
}
|
|
36
|
-
declare module '@eggjs/core' {
|
|
37
|
-
interface Response {
|
|
38
|
-
unsafeRedirect(url: string, alt?: string): void;
|
|
39
|
-
redirect(url: string, alt?: string): void;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const core_1 = require("@eggjs/core");
|
|
4
|
-
const unsafeRedirect = core_1.Response.prototype.redirect;
|
|
5
|
-
class SecurityResponse extends core_1.Response {
|
|
6
|
-
/**
|
|
7
|
-
* This is an unsafe redirection, and we WON'T check if the
|
|
8
|
-
* destination url is safe or not.
|
|
9
|
-
* Please DO NOT use this method unless in some very special cases,
|
|
10
|
-
* otherwise there may be security vulnerabilities.
|
|
11
|
-
*
|
|
12
|
-
* @function Response#unsafeRedirect
|
|
13
|
-
* @param {String} url URL to forward
|
|
14
|
-
* @example
|
|
15
|
-
* ```js
|
|
16
|
-
* ctx.response.unsafeRedirect('http://www.domain.com');
|
|
17
|
-
* ctx.unsafeRedirect('http://www.domain.com');
|
|
18
|
-
* ```
|
|
19
|
-
*/
|
|
20
|
-
unsafeRedirect(url, alt) {
|
|
21
|
-
unsafeRedirect.call(this, url, alt);
|
|
22
|
-
}
|
|
23
|
-
// app.response.unsafeRedirect = app.response.redirect;
|
|
24
|
-
// delegate(app.context, 'response').method('unsafeRedirect');
|
|
25
|
-
/**
|
|
26
|
-
* A safe redirection, and we'll check if the URL is in
|
|
27
|
-
* a safe domain or not.
|
|
28
|
-
* We've overridden the default Koa's implementation by adding a
|
|
29
|
-
* white list as the filter for that.
|
|
30
|
-
*
|
|
31
|
-
* @function Response#redirect
|
|
32
|
-
* @param {String} url URL to forward
|
|
33
|
-
* @example
|
|
34
|
-
* ```js
|
|
35
|
-
* ctx.response.redirect('/login');
|
|
36
|
-
* ctx.redirect('/login');
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
redirect(url, alt) {
|
|
40
|
-
url = (url || '/').trim();
|
|
41
|
-
// Process with `//`
|
|
42
|
-
if (url[0] === '/' && url[1] === '/') {
|
|
43
|
-
url = '/';
|
|
44
|
-
}
|
|
45
|
-
// if begin with '/', it means an internal jump
|
|
46
|
-
if (url[0] === '/' && url[1] !== '\\') {
|
|
47
|
-
this.unsafeRedirect(url, alt);
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
let urlObject;
|
|
51
|
-
try {
|
|
52
|
-
urlObject = new URL(url);
|
|
53
|
-
}
|
|
54
|
-
catch {
|
|
55
|
-
url = '/';
|
|
56
|
-
this.unsafeRedirect(url);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
const domainWhiteList = this.app.config.security.domainWhiteList;
|
|
60
|
-
if (urlObject.protocol !== 'http:' && urlObject.protocol !== 'https:') {
|
|
61
|
-
url = '/';
|
|
62
|
-
}
|
|
63
|
-
else if (!urlObject.hostname) {
|
|
64
|
-
url = '/';
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
if (domainWhiteList && domainWhiteList.length !== 0) {
|
|
68
|
-
if (!this.ctx.isSafeDomain(urlObject.hostname)) {
|
|
69
|
-
const message = `a security problem has been detected for url "${url}", redirection is prohibited.`;
|
|
70
|
-
if (process.env.NODE_ENV === 'production') {
|
|
71
|
-
this.app.coreLogger.warn('[@eggjs/security/response/redirect] %s', message);
|
|
72
|
-
url = '/';
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
// Exception will be thrown out in a non-PROD env.
|
|
76
|
-
return this.ctx.throw(500, message);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
this.unsafeRedirect(url);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
exports.default = SecurityResponse;
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2V4dGVuZC9yZXNwb25zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUFzRDtBQUd0RCxNQUFNLGNBQWMsR0FBRyxlQUFXLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztBQUV0RCxNQUFxQixnQkFBaUIsU0FBUSxlQUFXO0lBR3ZEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxjQUFjLENBQUMsR0FBVyxFQUFFLEdBQVk7UUFDdEMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsOERBQThEO0lBQzlEOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxRQUFRLENBQUMsR0FBVyxFQUFFLEdBQVk7UUFDaEMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTFCLG9CQUFvQjtRQUNwQixJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3JDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDWixDQUFDO1FBRUQsK0NBQStDO1FBQy9DLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFNBQWMsQ0FBQztRQUNuQixJQUFJLENBQUM7WUFDSCxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQztRQUNqRSxJQUFJLFNBQVMsQ0FBQyxRQUFRLEtBQUssT0FBTyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdEUsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNaLENBQUM7YUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9CLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDWixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksZUFBZSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDL0MsTUFBTSxPQUFPLEdBQUcsaURBQWlELEdBQUcsK0JBQStCLENBQUM7b0JBQ3BHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssWUFBWSxFQUFFLENBQUM7d0JBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDNUUsR0FBRyxHQUFHLEdBQUcsQ0FBQztvQkFDWixDQUFDO3lCQUFNLENBQUM7d0JBQ04sa0RBQWtEO3dCQUNsRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDdEMsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWpGRCxtQ0FpRkMifQ==
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const node_assert_1 = __importDefault(require("node:assert"));
|
|
7
|
-
const koa_compose_1 = __importDefault(require("koa-compose"));
|
|
8
|
-
const egg_path_matching_1 = require("egg-path-matching");
|
|
9
|
-
const index_js_1 = __importDefault(require("../../lib/middlewares/index.js"));
|
|
10
|
-
exports.default = (_, app) => {
|
|
11
|
-
const options = app.config.security;
|
|
12
|
-
const middlewares = [];
|
|
13
|
-
const defaultMiddlewares = typeof options.defaultMiddleware === 'string'
|
|
14
|
-
? options.defaultMiddleware.split(',').map(m => m.trim()).filter(m => !!m)
|
|
15
|
-
: options.defaultMiddleware;
|
|
16
|
-
if (options.match || options.ignore) {
|
|
17
|
-
app.coreLogger.warn('[@eggjs/security/middleware/securities] Please set `match` or `ignore` on sub config');
|
|
18
|
-
}
|
|
19
|
-
// format csrf.cookieDomain
|
|
20
|
-
const originalCookieDomain = options.csrf.cookieDomain;
|
|
21
|
-
if (originalCookieDomain && typeof originalCookieDomain !== 'function') {
|
|
22
|
-
options.csrf.cookieDomain = () => originalCookieDomain;
|
|
23
|
-
}
|
|
24
|
-
defaultMiddlewares.forEach(middlewareName => {
|
|
25
|
-
const opt = Reflect.get(options, middlewareName);
|
|
26
|
-
if (opt === false) {
|
|
27
|
-
app.coreLogger.warn('[egg-security] Please use `config.security.%s = { enable: false }` instead of `config.security.%s = false`', middlewareName, middlewareName);
|
|
28
|
-
}
|
|
29
|
-
(0, node_assert_1.default)(opt === false || typeof opt === 'object', `config.security.${middlewareName} must be an object, or false(if you turn it off)`);
|
|
30
|
-
if (opt === false || opt && opt.enable === false) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
if (middlewareName === 'csrf' && opt.useSession && !app.plugins.session) {
|
|
34
|
-
throw new Error('csrf.useSession enabled, but session plugin is disabled');
|
|
35
|
-
}
|
|
36
|
-
// use opt.match first (compatibility)
|
|
37
|
-
if (opt.match && opt.ignore) {
|
|
38
|
-
app.coreLogger.warn('[@eggjs/security/middleware/securities] `options.match` and `options.ignore` are both set, using `options.match`');
|
|
39
|
-
opt.ignore = undefined;
|
|
40
|
-
}
|
|
41
|
-
if (!opt.ignore && opt.blackUrls) {
|
|
42
|
-
app.deprecate('[@eggjs/security/middleware/securities] Please use `config.security.xframe.ignore` instead, `config.security.xframe.blackUrls` will be removed very soon');
|
|
43
|
-
opt.ignore = opt.blackUrls;
|
|
44
|
-
}
|
|
45
|
-
// set matching function to security middleware options
|
|
46
|
-
opt.matching = (0, egg_path_matching_1.pathMatching)(opt);
|
|
47
|
-
const createMiddleware = index_js_1.default[middlewareName];
|
|
48
|
-
const fn = createMiddleware(opt);
|
|
49
|
-
middlewares.push(fn);
|
|
50
|
-
app.coreLogger.info('[@eggjs/security/middleware/securities] use %s middleware', middlewareName);
|
|
51
|
-
});
|
|
52
|
-
app.coreLogger.info('[@eggjs/security/middleware/securities] compose %d middlewares into one security middleware', middlewares.length);
|
|
53
|
-
return (0, koa_compose_1.default)(middlewares);
|
|
54
|
-
};
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvbWlkZGxld2FyZS9zZWN1cml0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOERBQWlDO0FBQ2pDLDhEQUFrQztBQUNsQyx5REFBaUQ7QUFFakQsOEVBQWlFO0FBR2pFLGtCQUFlLENBQUMsQ0FBVSxFQUFFLEdBQVksRUFBRSxFQUFFO0lBQzFDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO0lBQ3BDLE1BQU0sV0FBVyxHQUFxQixFQUFFLENBQUM7SUFDekMsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLE9BQU8sQ0FBQyxpQkFBaUIsS0FBSyxRQUFRO1FBQ3RFLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQTZCO1FBQ3RHLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUM7SUFFOUIsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNwQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxzRkFBc0YsQ0FBQyxDQUFDO0lBQzlHLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsTUFBTSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN2RCxJQUFJLG9CQUFvQixJQUFJLE9BQU8sb0JBQW9CLEtBQUssVUFBVSxFQUFFLENBQUM7UUFDdkUsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7SUFDekQsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUMxQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQVEsQ0FBQztRQUN4RCxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNsQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyw0R0FBNEcsRUFBRSxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDcEssQ0FBQztRQUVELElBQUEscUJBQU0sRUFBQyxHQUFHLEtBQUssS0FBSyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFDN0MsbUJBQW1CLGNBQWMsa0RBQWtELENBQUMsQ0FBQztRQUV2RixJQUFJLEdBQUcsS0FBSyxLQUFLLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDakQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLGNBQWMsS0FBSyxNQUFNLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEUsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1FBQzdFLENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsSUFBSSxHQUFHLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrSEFBa0gsQ0FBQyxDQUFDO1lBQ3hJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLFNBQVMsQ0FBQywwSkFBMEosQ0FBQyxDQUFDO1lBQzFLLEdBQUcsQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsdURBQXVEO1FBQ3ZELEdBQUcsQ0FBQyxRQUFRLEdBQUcsSUFBQSxnQ0FBWSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQW1CLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDN0QsTUFBTSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQywyREFBMkQsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNuRyxDQUFDLENBQUMsQ0FBQztJQUVILEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDZGQUE2RixFQUMvRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEIsT0FBTyxJQUFBLHFCQUFPLEVBQUMsV0FBVyxDQUFDLENBQUM7QUFDOUIsQ0FBQyxDQUFDIn0=
|
package/dist/commonjs/app.d.ts
DELETED
package/dist/commonjs/app.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const utils_js_1 = require("./lib/utils.js");
|
|
4
|
-
const config_default_js_1 = require("./config/config.default.js");
|
|
5
|
-
class AppBoot {
|
|
6
|
-
app;
|
|
7
|
-
constructor(app) {
|
|
8
|
-
this.app = app;
|
|
9
|
-
}
|
|
10
|
-
configWillLoad() {
|
|
11
|
-
const app = this.app;
|
|
12
|
-
app.config.coreMiddleware.push('securities');
|
|
13
|
-
// parse config and check if config is legal
|
|
14
|
-
const parsed = config_default_js_1.SecurityConfig.parse(app.config.security);
|
|
15
|
-
if (typeof app.config.security.csrf === 'boolean') {
|
|
16
|
-
// support old config: `config.security.csrf = false`
|
|
17
|
-
app.config.security.csrf = parsed.csrf;
|
|
18
|
-
}
|
|
19
|
-
if (app.config.security.csrf.enable) {
|
|
20
|
-
const { ignoreJSON } = app.config.security.csrf;
|
|
21
|
-
if (ignoreJSON) {
|
|
22
|
-
app.deprecate('[@eggjs/security/app] `config.security.csrf.ignoreJSON` is not safe now, please disable it.');
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
(0, utils_js_1.preprocessConfig)(app.config.security);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
exports.default = AppBoot;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDZDQUFrRDtBQUNsRCxrRUFBNEQ7QUFFNUQsTUFBcUIsT0FBTztJQUNULEdBQUcsQ0FBQztJQUVyQixZQUFZLEdBQVk7UUFDdEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3Qyw0Q0FBNEM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsa0NBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6RCxJQUFJLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xELHFEQUFxRDtZQUNyRCxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEMsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNoRCxJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLEdBQUcsQ0FBQyxTQUFTLENBQUMsNkZBQTZGLENBQUMsQ0FBQztZQUMvRyxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUEsMkJBQWdCLEVBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxDQUFDO0NBQ0Y7QUExQkQsMEJBMEJDIn0=
|