Windows 10 Pro, 64-разрядная версия Insider Edition, сборка 16184
Обратите внимание, что, хотя заголовок вопроса почти идентичен предыдущему вопросу, его чтение покажет, что содержание теперь существенно переработано. Это было по совету @Адам. Его слова:
It seems you're accidentally including your source code as static files and
serving them. I'd advise posting a new question showing your app's directory
structure and current app.yaml. Please don't edit this question as a new
question, as it's not good Stack Overflow etiquette :)
Здравствуйте, я репостю этот вопрос по совету Адама, который, кажется, является опытным пользователем SF и знает, о чем он говорит!
У меня следующая структура папок:
/
+ index.html
+ go.html
+ vim.html
+ git.html
+- css
| + main.css
+- img
| + forestbridge.jpg
+- main.go
Мой main.go просто содержит следующее:
package main
import (
"net/http"
)
func init() {
http.Handle("/", http.FileServer(http.Dir(".")))
}
Мой app.yaml содержит следующее:
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
Сайт работает в том смысле, что он обслуживает файлы, а также веб-контент, он также может обслуживать main.go
и app.yaml
что является очевидной дырой в безопасности.
Мне кажется, что очевидным виновником такого поведения является http.FileServer(http.Dir("."))
строка в источнике, которая обслуживает все и вся. Как это исправить?
Другой проблемой, хотя и второстепенной, является тот факт, что я привязал себя к негибкому способу выполнения вещей, что означает, что мне придется пожертвовать совместимостью с Golang 1.8, если мой код когда-либо станет настолько продвинутым. Как бы мне изменить вещи, чтобы использовать env: flex
подходить?