mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-02-24 23:53:01 +08:00
New feature: FETCH() permits http gets in dnsconfig.js (#1007)
add PANIC() and error-handled FETCH()
This commit is contained in:
parent
120694bfad
commit
6efedd689d
8 changed files with 253 additions and 130 deletions
|
@ -10,6 +10,7 @@ import (
|
|||
"github.com/urfave/cli/v2"
|
||||
|
||||
"github.com/StackExchange/dnscontrol/v3/models"
|
||||
"github.com/StackExchange/dnscontrol/v3/pkg/js"
|
||||
"github.com/StackExchange/dnscontrol/v3/pkg/printer"
|
||||
)
|
||||
|
||||
|
@ -52,6 +53,11 @@ func Run(v string) int {
|
|||
Usage: "Enable detailed logging",
|
||||
Destination: &printer.DefaultPrinter.Verbose,
|
||||
},
|
||||
&cli.BoolFlag{
|
||||
Name: "allow-fetch",
|
||||
Usage: "Enable JS fetch(), dangerous on untrusted code!",
|
||||
Destination: &js.EnableFetch,
|
||||
},
|
||||
}
|
||||
sort.Sort(cli.CommandsByName(commands))
|
||||
app.Commands = commands
|
||||
|
|
44
docs/_functions/global/FETCH.md
Normal file
44
docs/_functions/global/FETCH.md
Normal file
|
@ -0,0 +1,44 @@
|
|||
---
|
||||
name: FETCH
|
||||
parameters:
|
||||
- url
|
||||
- args
|
||||
---
|
||||
|
||||
`FETCH` is a wrapper for the [Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). This allows dynamically setting DNS records based on an external data source, e.g. the API of your cloud provider.
|
||||
|
||||
Compared to `fetch` from Fetch API, `FETCH` will call [PANIC](#PANIC) to terminate the execution of the script, and therefore DnsControl, if a network error occurs.
|
||||
|
||||
Otherwise the syntax of `FETCH` is the same as `fetch`.
|
||||
|
||||
`FETCH` is not enabled by default. Please read the warnings below.
|
||||
|
||||
> WARNING:
|
||||
>
|
||||
> 1. Relying on external sources adds a point of failure. If the external source doesn't work, your script won't either. Please make sure you are aware of the consequences.
|
||||
> 2. Make sure DnsControl only uses verified configuration if you want to use `FETCH`. For example, an attacker can send Pull Requests to your config repo, and have your CI test malicious configurations and make arbitrary HTTP requests. Therefore, `FETCH` must be explicitly enabled with flag `--allow-fetch` on DnsControl invocation.
|
||||
|
||||
{% include startExample.html %}
|
||||
{% highlight js %}
|
||||
var REG_NONE = NewRegistrar('none', 'NONE');
|
||||
var DNS_BIND = NewDnsProvider('bind', 'BIND');
|
||||
|
||||
D('example.com', REG_NONE, DnsProvider(DNS_BIND), [
|
||||
A('@', '1.2.3.4'),
|
||||
]);
|
||||
|
||||
FETCH('https://example.com', {
|
||||
// All three options below are optional
|
||||
headers: {"X-Authentication": "barfoo"},
|
||||
method: "POST",
|
||||
body: "Hello World",
|
||||
}).then(function(r) {
|
||||
return r.text();
|
||||
}).then(function(t) {
|
||||
// Example of generating record based on response
|
||||
D_EXTEND('example.com', [
|
||||
TXT('@', t.slice(0, 100)),
|
||||
]);
|
||||
});
|
||||
{%endhighlight%}
|
||||
{% include endExample.html %}
|
13
docs/_functions/global/PANIC.md
Normal file
13
docs/_functions/global/PANIC.md
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
name: PANIC
|
||||
parameters:
|
||||
- message
|
||||
---
|
||||
|
||||
`PANIC` terminates the script and therefore DnsControl with an exit code of 1. This should be used if your script cannot gather enough information to generate records, for example when a HTTP request failed.
|
||||
|
||||
{% include startExample.html %}
|
||||
{% highlight js %}
|
||||
PANIC("Something really bad has happened");
|
||||
{%endhighlight%}
|
||||
{% include endExample.html %}
|
2
go.mod
2
go.mod
|
@ -64,6 +64,7 @@ require (
|
|||
github.com/tdewolff/test v1.0.6 // indirect
|
||||
github.com/urfave/cli/v2 v2.3.0
|
||||
github.com/vultr/govultr v1.0.0
|
||||
github.com/xddxdd/ottoext v0.0.0-20210101073831-439879ee6281
|
||||
golang.org/x/crypto v0.0.0-20201124201722-c8d3bf9c5392 // indirect
|
||||
golang.org/x/mod v0.4.0 // indirect
|
||||
golang.org/x/net v0.0.0-20201224014010-6772e930b67b
|
||||
|
@ -77,7 +78,6 @@ require (
|
|||
google.golang.org/grpc v1.34.0 // indirect
|
||||
gopkg.in/ini.v1 v1.62.0 // indirect
|
||||
gopkg.in/ns1/ns1-go.v2 v2.0.0-20170502175150-c563826f4cbe
|
||||
gopkg.in/sourcemap.v1 v1.0.5 // indirect
|
||||
gopkg.in/square/go-jose.v2 v2.5.1 // indirect
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 // indirect
|
||||
|
|
13
go.sum
13
go.sum
|
@ -67,10 +67,14 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
|
|||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||
github.com/DisposaBoy/JsonConfigReader v0.0.0-20201129172854-99cf318d67e7 h1:AJKJCKcb/psppPl/9CUiQQnTG+Bce0/cIweD5w5Q7aQ=
|
||||
github.com/DisposaBoy/JsonConfigReader v0.0.0-20201129172854-99cf318d67e7/go.mod h1:GCzqZQHydohgVLSIqRKZeTt8IGb1Y4NaFfim3H40uUI=
|
||||
github.com/GeertJohan/go.incremental v1.0.0/go.mod h1:6fAjUhbVuX1KcMD3c8TEgVUqmo4seqhv0i0kdATSkM0=
|
||||
github.com/GeertJohan/go.rice v1.0.2 h1:PtRw+Tg3oa3HYwiDBZyvOJ8LdIyf6lAovJJtr7YOAYk=
|
||||
github.com/GeertJohan/go.rice v1.0.2/go.mod h1:af5vUNlDNkCjOZeSGFgIJxDje9qdjsO6hshx0gTmZt4=
|
||||
github.com/PuerkitoBio/goquery v1.6.0 h1:j7taAbelrdcsOlGeMenZxc2AWXD5fieT1/znArdnx94=
|
||||
github.com/PuerkitoBio/goquery v1.6.0/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
|
||||
github.com/TomOnTime/utfutil v0.0.0-20200626160131-0b0178852c8f h1:MXp+2PP1RxWWoE3qmOecVblerzKCryXkFXq9er+EDr8=
|
||||
github.com/TomOnTime/utfutil v0.0.0-20200626160131-0b0178852c8f/go.mod h1:FiuynIwe98RFhWI8nZ0dnsldPVsBy9rHH1hn2WYwme4=
|
||||
github.com/akavel/rsrc v0.8.0/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
|
||||
github.com/alecthomas/kong v0.2.2/go.mod h1:kQOmtJgV+Lb4aj+I2LEn40cbtawdWJ9Y8QLq+lElKxE=
|
||||
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=
|
||||
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
|
||||
|
@ -105,6 +109,8 @@ github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:ma
|
|||
github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
|
||||
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
|
||||
github.com/daaku/go.zipexe v1.0.0 h1:VSOgZtH418pH9L16hC/JrgSNJbbAL26pj7lmD1+CGdY=
|
||||
github.com/daaku/go.zipexe v1.0.0/go.mod h1:z8IiR6TsVLEYKwXAoE/I+8ys/sDkgTzSL0CLnGVd57E=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
|
@ -273,6 +279,7 @@ github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:
|
|||
github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
|
||||
github.com/jarcoal/httpmock v1.0.4 h1:jp+dy/+nonJE4g4xbVtl9QdrUNbn6/3hDT5R4nDIZnA=
|
||||
github.com/jarcoal/httpmock v1.0.4/go.mod h1:ATjnClrvW/3tijVmpL/va5Z3aAyGvqU3gCT8nX0Txik=
|
||||
github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI=
|
||||
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
|
||||
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
|
||||
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
|
||||
|
@ -357,6 +364,7 @@ github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32 h1:W6apQkHrMkS0Muv8G/TipAy
|
|||
github.com/nbio/st v0.0.0-20140626010706-e9e8d9816f32/go.mod h1:9wM+0iRr9ahx58uYLpLIr5fm8diHn0JbqRycJi6w0Ms=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/nkovacs/streamquote v1.0.0/go.mod h1:BN+NaZ2CmdKqUuTUXUEm9j95B2TRbpOWpxbJYzzgUsc=
|
||||
github.com/nrdcg/goinwx v0.8.1 h1:20EQ/JaGFnSKwiDH2JzjIpicffl3cPk6imJBDqVBVtU=
|
||||
github.com/nrdcg/goinwx v0.8.1/go.mod h1:tILVc10gieBp/5PMvbcYeXM6pVQ+c9jxDZnpaR1UW7c=
|
||||
github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d/go.mod h1:YUTz3bUH2ZwIWBy3CJBeOBEugqcmXREj14T+iG/4k4U=
|
||||
|
@ -419,8 +427,12 @@ github.com/tdewolff/test v1.0.6 h1:76mzYJQ83Op284kMT+63iCNCI7NEERsIN8dLM+RiKr4=
|
|||
github.com/tdewolff/test v1.0.6/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
|
||||
github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M=
|
||||
github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI=
|
||||
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
|
||||
github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8=
|
||||
github.com/vultr/govultr v1.0.0 h1:yeJrYp9wyA4xXaQZ7eOL2u1wKn2JU79HjRevwvpxbJ4=
|
||||
github.com/vultr/govultr v1.0.0/go.mod h1:wZZXZbYbqyY1n3AldoeYNZK4Wnmmoq6dNFkvd5TV3ss=
|
||||
github.com/xddxdd/ottoext v0.0.0-20210101073831-439879ee6281 h1:QruJ/b9zaFRxtNYvekIXlqWh/BoJJrSJg+FdmMNp8cw=
|
||||
github.com/xddxdd/ottoext v0.0.0-20210101073831-439879ee6281/go.mod h1:8Hr+gV9GtucFQOptKfzuYxqg++CyIjg4E7QCR7F3Dxw=
|
||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
|
@ -789,6 +801,7 @@ gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3
|
|||
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
|
||||
gopkg.in/ns1/ns1-go.v2 v2.0.0-20170502175150-c563826f4cbe h1:fuu3vZ8C6O8mk8Ich8YfkDv/Zpnx1HUotQk8JocBcSw=
|
||||
gopkg.in/ns1/ns1-go.v2 v2.0.0-20170502175150-c563826f4cbe/go.mod h1:VV+3haRsgDiVLxyifmMBrBIuCWFBPYKbRssXB9z67Hw=
|
||||
gopkg.in/readline.v1 v1.0.0-20160726135117-62c6fe619375/go.mod h1:lNEQeAhU009zbRxng+XOj5ITVgY24WcbNnQopyfKoYQ=
|
||||
gopkg.in/sourcemap.v1 v1.0.5 h1:inv58fC9f9J3TK2Y2R1NPntXEn3/wjWHkonhIUODNTI=
|
||||
gopkg.in/sourcemap.v1 v1.0.5/go.mod h1:2RlvNNSMglmRrcvhfuzp4hQHwOtjxlbjX7UPY/GXb78=
|
||||
gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4=
|
||||
|
|
|
@ -962,3 +962,7 @@ function CLI_DEFAULTS(defaults) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
function FETCH() {
|
||||
return fetch.apply(null, arguments).catch(PANIC);
|
||||
}
|
||||
|
|
47
pkg/js/js.go
47
pkg/js/js.go
|
@ -11,6 +11,11 @@ import (
|
|||
"github.com/robertkrimen/otto" // load underscore js into vm by default
|
||||
_ "github.com/robertkrimen/otto/underscore" // required by otto
|
||||
|
||||
"github.com/xddxdd/ottoext/fetch"
|
||||
"github.com/xddxdd/ottoext/loop"
|
||||
"github.com/xddxdd/ottoext/promise"
|
||||
"github.com/xddxdd/ottoext/timers"
|
||||
|
||||
"github.com/StackExchange/dnscontrol/v3/models"
|
||||
"github.com/StackExchange/dnscontrol/v3/pkg/printer"
|
||||
"github.com/StackExchange/dnscontrol/v3/pkg/transform"
|
||||
|
@ -24,6 +29,9 @@ import (
|
|||
// far as require() is concerned, not the actual os.Getwd().
|
||||
var currentDirectory string
|
||||
|
||||
// EnableFetch sets whether to enable fetch() in JS execution environment
|
||||
var EnableFetch bool = false
|
||||
|
||||
// ExecuteJavascript accepts a javascript string and runs it, returning the resulting dnsConfig.
|
||||
func ExecuteJavascript(file string, devMode bool, variables map[string]string) (*models.DNSConfig, error) {
|
||||
script, err := ioutil.ReadFile(file)
|
||||
|
@ -35,10 +43,26 @@ func ExecuteJavascript(file string, devMode bool, variables map[string]string) (
|
|||
currentDirectory = filepath.Dir(file)
|
||||
|
||||
vm := otto.New()
|
||||
l := loop.New(vm)
|
||||
|
||||
if err := timers.Define(vm, l); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := promise.Define(vm, l); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// only define fetch() when explicitly enabled
|
||||
if EnableFetch {
|
||||
if err := fetch.Define(vm, l); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
vm.Set("require", require)
|
||||
vm.Set("REV", reverse)
|
||||
vm.Set("glob", listFiles) // used for require_glob()
|
||||
vm.Set("PANIC", jsPanic)
|
||||
|
||||
// add cli variables to otto
|
||||
for key, value := range variables {
|
||||
|
@ -47,12 +71,17 @@ func ExecuteJavascript(file string, devMode bool, variables map[string]string) (
|
|||
|
||||
helperJs := GetHelpers(devMode)
|
||||
// run helper script to prime vm and initialize variables
|
||||
if _, err := vm.Run(helperJs); err != nil {
|
||||
if err := l.Eval(helperJs); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// run user script
|
||||
if _, err := vm.Run(script); err != nil {
|
||||
if err := l.Eval(script); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// wait for event loop to finish
|
||||
if err := l.Run(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
@ -212,6 +241,20 @@ func listFiles(call otto.FunctionCall) otto.Value {
|
|||
return value
|
||||
}
|
||||
|
||||
func jsPanic(call otto.FunctionCall) otto.Value {
|
||||
if len(call.ArgumentList) != 1 {
|
||||
throw(call.Otto, "PANIC takes exactly one argument")
|
||||
}
|
||||
|
||||
message := call.Argument(0).String() // The filename as given by the user
|
||||
fmt.Fprintln(os.Stderr, message)
|
||||
os.Exit(1)
|
||||
|
||||
// Won't be actually executed
|
||||
v, _ := otto.ToValue(0)
|
||||
return v
|
||||
}
|
||||
|
||||
func throw(vm *otto.Otto, str string) {
|
||||
panic(vm.MakeCustomError("Error", str))
|
||||
}
|
||||
|
|
254
pkg/js/static.go
254
pkg/js/static.go
|
@ -212,135 +212,135 @@ var _escData = map[string]*_escFile{
|
|||
"/helpers.js": {
|
||||
name: "helpers.js",
|
||||
local: "pkg/js/helpers.js",
|
||||
size: 28640,
|
||||
size: 28716,
|
||||
modtime: 0,
|
||||
compressed: `
|
||||
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
|
||||
bW+i4G8AAA==
|
||||
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
|
||||
`,
|
||||
},
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue