Quão seguros são os servidores HTTP baseados em idiomas? [fechadas]

2

Quão seguro devo considerar o framework go lang net / http?

Eu entendo o quão ampla é essa pergunta, mas estou pensando em como devo considerar o framework em si, NÃO o aplicativo criado em cima dele.

Se eu fosse criar o seguinte código de exemplo e executá-lo na porta aberta à Internet, preciso me preocupar com o comprometimento do servidor?

package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}
    
por DonGar 21.12.2014 / 22:16

1 resposta

1

Em geral:

Tudo se resume à sofisticação do atacante. Encontrar um bug (explorável) é sempre uma função dos recursos gravados para encontrá-lo (versus a habilidade do programador original).

É mais provável que você receba um bug em uma linguagem de nível mais baixo do que em um nível mais alto (principalmente porque há mais linhas para encontrar o bug no caso do nível mais baixo); além disso, é mais provável encontrar um bug em um software caseiro do que em uma linguagem mainstream como o Go, o Java, etc.

Para ser específico:

Embora o Go ainda seja uma linguagem jovem, ele é mantido ativamente por uma comunidade relativamente pequena de profissionais qualificados.

Então, eu não esperaria que buracos como o bind, sendmail, openssl ou bash.

De qualquer forma, se eu estivesse no seu lugar, eu não executaria o servidor sem as devidas precauções (uid / gid, chroot, ulimits, cgroup limitado, distro endurecido) independentemente da linguagem em que está escrito.

    
por 21.12.2014 / 23:23

Tags