Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
github.com/sta-travel/cloudns-go
This is an API-Client for the ClouDNS HTTP API written in Go
Currently this software is written by an absolute noob in go. Therefore, I am very happy about any pointers toward making the code simpler, faster or more lightweight.
Use at your own risk!
There are three structs that you need to know:
// Apiaccess ClouDNS API Credentials, see https://www.cloudns.net/wiki/article/42/
type Apiaccess struct {
Authid int `json:"auth-id,omitempty"`
Subauthid int `json:"sub-auth-id,omitempty"`
Authpassword string `json:"auth-password"`
}
// Zone is the external representation of a zone
// check the ...zone types in api.go for details
type Zone struct {
Domain string `json:"domain-name"`
Ztype string `json:"zone-type"`
Ns []string `json:"ns,omitempty"`
}
// Record is the external representation of a record
// check the ...record types in api.go for details
type Record struct {
ID string `json:"id"`
Domain string `json:"domain-name"`
Host string `json:"host"`
Rtype string `json:"record-type"`
TTL int `json:"ttl"`
Record string `json:"record"`
}
a := cloudns.Apiaccess{
Authid: 1234,
Authpassword: "super-secret-password",
}
z := cloudns.Zone{
Domain: "testdomain.xxx",
Ztype: "master",
}
r := cloudns.Record{
Domain: "testdomain.xxx",
ID: "",
Host: "foo",
Rtype: "TXT",
Record: "bar",
TTL: 3600,
}
These structs have methods, that call the API, most of them return either an Array of the other ones or the updated input struct and an error.
Listzones(): lists all zones (up to 100)
zonelist, zonelisterr := a.Listzones()
if zonelisterr == nil {
spew.Println(zonelist)
} else {
spew.Println(zonelisterr)
}
List(*auth): lists all records from a zone
fmt.Println("reading zone")
zr, zrerr := z.Read(&a)
if zrerr == nil {
spew.Println(zr)
} else {
spew.Println(zrerr)
}
Create(*auth): create a zone
fmt.Println("create zone testdomain.xxx")
zc, zcerr := z.Create(&a)
if zcerr == nil {
spew.Println(zc)
z = zc
} else {
spew.Println(zcerr)
}
Destroy(*auth): destroy a zone
fmt.Println("destroying zone testdomain.xxx ...")
zd, zderr := z.Destroy(&a)
if zderr == nil {
spew.Println(zd)
} else {
spew.Println(zderr)
}
Create(*auth): Create a record
fmt.Println("creating record foo TXT bar 3600")
rc, rcerr := r.Create(&a)
if rcerr == nil {
spew.Println(rc)
} else {
spew.Println(rcerr)
}
Update(*auth): Update a record
rc.Record = "foobar"
fmt.Println("Updating record to foo TXT foobar 3600")
ru, ruerr := rc.Update(&a)
if ruerr == nil {
spew.Println(ru)
} else {
spew.Println(ruerr)
}
Read(*auth): Read a record
fmt.Println("Reading Record back")
rr, rrerr := ru.Read(&a)
if rrerr == nil {
spew.Println(rr)
} else {
spew.Println(rrerr)
}
Destroy(*auth): Destroy a record
fmt.Println("Destroying record")
rd, rderr := rr.Destroy(&a)
if rderr == nil {
spew.Println(rd)
} else {
spew.Println(rderr)
}
I did not yet touched any of the advanced features, that ClouDNS offers. For details please check the limitations
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.