mirror of
https://code.rocketnine.space/tslocum/twins.git
synced 2024-11-27 13:18:13 +01:00
Do not serve hidden files and directories by default
This commit is contained in:
parent
05da75b22b
commit
51fd59b24f
3 changed files with 21 additions and 3 deletions
|
@ -102,9 +102,15 @@ Cache duration (in seconds). Set to `0` to disable caching entirely. This is an
|
||||||
out-of-spec feature. See [PROPOSALS.md](https://gitlab.com/tslocum/twins/blob/master/PROPOSALS.md)
|
out-of-spec feature. See [PROPOSALS.md](https://gitlab.com/tslocum/twins/blob/master/PROPOSALS.md)
|
||||||
for more information.
|
for more information.
|
||||||
|
|
||||||
|
##### HiddenFiles
|
||||||
|
|
||||||
|
When enabled, hidden files and directories may be accessed. This attribute is
|
||||||
|
disabled by default.
|
||||||
|
|
||||||
##### ListDirectory
|
##### ListDirectory
|
||||||
|
|
||||||
Directory listing may be enabled by adding `listdirectory: true`.
|
When enabled, directories without an index file will serve a list their
|
||||||
|
contents. This attribute is disabled by default.
|
||||||
|
|
||||||
##### Input
|
##### Input
|
||||||
|
|
||||||
|
@ -116,8 +122,8 @@ Request sensitive text input from the user. Text will not be shown as it is ente
|
||||||
|
|
||||||
##### Type
|
##### Type
|
||||||
|
|
||||||
Content type is normally detected automatically, defaulting to
|
Content type is normally detected automatically. This attribute forces a
|
||||||
`text/gemini; charset=utf-8`. This option forces a specific content type.
|
specific content type for a path.
|
||||||
|
|
||||||
##### FastCGI
|
##### FastCGI
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,9 @@ type pathConfig struct {
|
||||||
// Request sensitive input
|
// Request sensitive input
|
||||||
SensitiveInput string
|
SensitiveInput string
|
||||||
|
|
||||||
|
// Serve hidden files and directories
|
||||||
|
HiddenFiles bool
|
||||||
|
|
||||||
// List directory entries
|
// List directory entries
|
||||||
ListDirectory bool
|
ListDirectory bool
|
||||||
|
|
||||||
|
|
|
@ -139,6 +139,15 @@ func servePath(c *tls.Conn, request *url.URL, serve *pathConfig) {
|
||||||
resolvedPath = strings.Join(requestSplit[pathSlashes:], "/")
|
resolvedPath = strings.Join(requestSplit[pathSlashes:], "/")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !serve.HiddenFiles {
|
||||||
|
for _, piece := range requestSplit {
|
||||||
|
if len(piece) > 0 && piece[0] == '.' {
|
||||||
|
writeStatus(c, statusTemporaryFailure)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var filePath string
|
var filePath string
|
||||||
if serve.Root != "" {
|
if serve.Root != "" {
|
||||||
root := serve.Root
|
root := serve.Root
|
||||||
|
|
Loading…
Reference in a new issue