Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
zgo.at/zhttp
Martin's HTTP package: It's not a "framework", but just a collection of functions for building HTTP services.
Honestly, I'm not sure how useful this will be for other people at this stage, but it's pretty useful for me.
Much of this was extracted from GoatCounter.
zhttp.Wrap()
allows returning errors from HTTP endpoints:
http.HandleFunc("/bar", zhttp.Wrap(func(w http.ResponseWriter, r *http.Request) error {
d, err := getData()
if err != nil {
return err
}
return zhttp.Text(w, "Hello, %s", d)
}))
It's just more convenient than http.Error(...)
followed by a return
. The
ErrFunc()
will be used to report returned errors (you can override it if you
need to).
Return helpers (with the http.ResponseWriter
elided in the function
signature):
Stream(fp io.Reader) Stream any data.
Bytes(b []byte) Send []byte
String(s string) Send string
Text(s string) Send string with Content-Type text/plain
JSON(i any) Send JSON
Template(name string, data any) Render a template (see below)
MovedPermanently(url string) 301 Moved Permanently
SeeOther(url string) 303 See Other
Templates can be rendered with the ztpl
package; you have to call
ztpl.Init()
first with the path to load templates from, and an optional map
for templates compiled in the binary.
You can use ztpl.Reload()
to reload the templates from disk on changes, which
is useful for development. e.g. with github.com/teamwork/reload:
ztpl.Init("tpl", pack.Templates)
go func() {
err := reload.Do(zlog.Module("main").Debugf, reload.Dir("./tpl", ztpl.Reload))
if err != nil {
panic(errors.Errorf("reload.Do: %v", err))
}
}()
Few other tidbits:
User auth can be added with zhttpAuth()
, zhttp.SetAuthCookie()
, and
zhttp.Filter()
.
zhttp.Decode()
scans forms, JSON body, or URL query parameters in to a
struct. It's just a convencience wrapper around formam.
zhttp.NewStatic()
will create a static file host.
zhttp.HostRoute()
routes request to chi routers based on the Host header.
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’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.