You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
4 years ago
|
# Encoding
|
||
|
|
||
|
By default, URLs are parsed as having standard (HTTP) URL encoding. All other
|
||
|
parsed text content are treated as UTF-8, as this is the default encoding scheme
|
||
|
Go strings. Support for more encoding schemes is planned for the future
|
||
|
|
||
|
# Chroots and Privilege Dropping
|
||
|
|
||
|
Previously, chrooting to server directory and dropping privileges was supported
|
||
|
by using Go C bindings. This is not officially supported due to weird behaviour
|
||
|
with `.Set{U,G}id()` under Linux. As such, the feature has been dropped for
|
||
|
now.
|
||
|
|
||
|
There is a near 10 year ongoing tracked issue
|
||
|
(https://github.com/golang/go/issues/1435), and as soon as this patch gets
|
||
|
merged I'll add support: https://go-review.googlesource.com/c/go/+/210639
|
||
|
|
||
|
In place of removing this, request sanitization has been majorly improved and
|
||
|
checks are in place to prevent running Gophor as root.
|
||
|
|
||
|
If you run into issues binding to a lower port number due to insufficient
|
||
|
permissions then there are a few alternatives:
|
||
|
|
||
|
- set gophor process capabilities: e.g.
|
||
|
`setcap 'cap_net_bind_service=+ep' /usr/local/bin/gophor`
|
||
|
|
||
|
- use Docker (or some other solution) and configure port forwarding on the
|
||
|
host
|
||
|
|
||
|
- start gopher in it's own namespace in a chroot
|