Gitea: Ocultar usuários da visão pública

Criado em 13 nov. 2017  ·  60Comentários  ·  Fonte: go-gitea/gitea

  • Versão Gitea (ou commit ref): 1.2.3
  • Versão Git: 2.15
  • Sistema operacional: CentOS
  • Banco de dados (use [x] ):

    • [] PostgreSQL

    • [] MySQL

    • [] MSSQL

    • [x] SQLite

  • Você pode reproduzir o bug em https://try.gitea.io :

    • [] Sim (fornecer exemplo de URL)

    • [ ] Não

    • [x] Não é relevante

  • Resumo do log:

Descrição

Acho que deve haver uma opção de configuração para evitar a exibição de contas de usuário do público. Tenho contas de usuário em minha instância do Gitea que não gostaria que outras pessoas vissem. Isso pode ser viável com modelos, mas não tenho certeza no momento.

kinfeature revieweconfirmed

Comentários muito úteis

Ainda queria ...

Todos 60 comentários

Defina "visualização". Você está se referindo a listagens como /explore/users ? E quanto a eles comentando sobre questões públicas, você quer que o comentário seja ocultado? Comprometendo-se com um repo público, o commit não deve ser mostrado?

(nenhum dos dois últimos casos são viáveis ​​de uma forma sensata, a propósito :))

Acho que isso serve para ocultar de explore/users

@bkcsoft Sim, estou me referindo a /explore/users . Pra você, pra falar a verdade, esqueci completamente esse assunto. Consegui resolver isso usando um modelo.

Para responder totalmente à sua pergunta, tenho o usuário root e outros usuários "somente leitura" que não quero que sejam exibidos na página /explore/users . Se eles não tiverem commits, eles estarão essencialmente ocultos da vista do público. Quero impedir que alguém faça login com os usuários root ou "somente leitura".

Observação:

  • Por "somente leitura" quero dizer que tenho contas com acesso somente leitura aos repositórios em minha conta principal do Gitea.

@demonpig , você poderia postar uma ideia geral do modelo personalizado que está usando?

@techknowlogick Aqui está.
O arquivo está em: ${GITEA_HOME}/custom/templates/explore

{{template "base/head" .}}
<div class="explore users">
        {{template "explore/navbar" .}}
        <div class="ui container">
                Users not viewable.
        </div>
</div>
{{template "base/footer" .}}

@demonpig obrigado

Seria bom ter, além de uma opção que esconde todos os usuários da visualização pública, uma opção para ocultar usuários específicos da visualização pública. Como as contas locais de backup quando você tem ldap auth ativado = /.

+1
Acabei de encontrar o mesmo problema - a conta não LDAP somente para administradores é exibida com destaque na página de destino. Isso pede tentativas de login "criativas" ....

Sim, seria bom ter isso. Por enquanto, acabei de abordar 403 qualquer pessoa que visita /explore/users via NGINX.

FWIW, parece que a comunidade gitea e gogs quer isso.

https://github.com/gogits/gogs/issues/5080
https://github.com/gogits/gogs/issues/3248

Negar acesso apenas a / explore / users não resolve o problema. Os usuários ainda podem ser encontrados por meio da API:

curl -X GET "http://gitea/api/v1/users/search" -H  "accept: application/json"

@shuhaowu Boa captura! Esqueci totalmente de bloquear o acesso a esse endpoint também.

Adoraria ver isso, para que o usuário administrador não seja tão proeminente.

Para esclarecer, esse problema com REQUIRE_SIGNIN_VIEW definido como true ou false ?

@davidsiefert Não acredito. Basicamente, pode haver uma opção de configuração adicionada que evite que a raiz ou todas as outras contas de usuário sejam mostradas na API e em /explore/users endpoints? Talvez o Gitea possa ser configurado / desenvolvido de uma forma que mostre apenas os usuários que fizeram commits?

… Ou aqueles que optam por ser publicado.

Esse seria um recurso importante para nós. Os usuários não devem ser capazes de ver outros usuários.

+1 solicitação para ocultar usuários de outras pessoas, exceto admin (adicionar sinalizador de direitos)

+1

Como isso seria tratado na API?

+1

+1

Este problema foi marcado automaticamente como obsoleto porque não teve atividades recentes. Ele estará fechado se nenhuma outra atividade ocorrer durante as próximas 2 semanas. Obrigado por suas contribuições.

Ainda queria ...

sim. Definitivamente, ainda queria.

solução temporária (apenas oculta as opções de visualizações) para quem tem pressa aqui: https://github.com/gogs/gogs/issues/5080#issuecomment -482657310

para quem tem pressa aqui: gogs / gogs # 5080

@miqmago como evita digitar manualmente "/ explore / users" no navegador?
Acho que corrigir o routes.go (em torno de https://github.com/go-gitea/gitea/blob/master/routers/routes/routes.go#L247) é obrigatório, não é?

Além disso, o # 6530 foi resolvido como duplicado.
Mas eu gostaria de enfatizar que ter o recurso de organização privada lançado, mas com a possibilidade de expor todos os usuários, mesmo de qualquer organização privada, deve ser tratado como uma falha de segurança: wink:

É possível escalar este problema para a filial 1.8.1?

Não é uma brecha de segurança, já que o critério de aceitação nunca foi ocultar usuários que fazem parte de organizações ocultas. É para isso que serve este bilhete.

Não é uma brecha de segurança

OK :)

Mas os critérios para ocultar usuários de uma organização privada para outras organizações podem ser adicionados? Pode ser opcional.
Ou pelo menos o bloqueio opcional de rota "/ explore / users" e o modelo correspondente ...
Eu ficaria feliz em ver isso em 1.8.x. Desculpe, minhas habilidades atuais em Go não são suficientes para contribuir com algum RP :(

@igsol, você está certo, eu atualizei o tópico, então agora ele só pode ser acessado por usuários administradores.

No meu ponto de vista, isso deve ser algo configurável no painel de administração do usuário. Também acho isso bastante complexo e não conheço todas as soluções propostas. Certamente, existem vários cenários: permissão para ver todos os usuários de uma organização à qual o usuário pertence, para ver todos os usuários, para ver apenas a si mesmos, usuários públicos ...

@techknowlogick não sei se este é o lugar certo para discutir isso e onde posso encontrar mais informações sobre isso, mas eu li que este é um fork do Gogs mantido pela comunidade. Não tenho certeza sobre as diferenças com o gogs, como integra os novos recursos desenvolvidos no gogs e por que devo migrar para o gitea ou me limitar ao gogs, prós e contras. Talvez você possa me indicar algum lugar para obter mais informações. Também para dizer que não sou um programador experiente em movimento, mas poderia contribuir de alguma forma também, ou seja, estou trabalhando em traduções catalãs.

@miqmago Aqui está uma comparação útil sobre o que Gitea vs Gogs oferece: https://docs.gitea.io/en-us/comparison/ , bem como a postagem do blog de lançamento explicando sobre as diferenças na governança dos projetos: https: / /blog.gitea.io/2016/12/welcome-to-gitea/

@igsol este tíquete não chegará a uma versão 1.8.x devido ao projeto apenas fazer backporting de correções de bugs, estamos atualmente trabalhando para liberar 1.9.x.

atualmente trabalhando para obter 1.9.x out.

@techknowlogick Ok, entendo, NP.

Até agora eu me ajudei fazendo uma compilação privada local aplicando meu patch bastante brutal (algo como @miqmago mencionado, mas mais simples). O principal é implementar este tíquete no final :)

De qualquer forma, obrigado a toda a equipe pelo brilhante Gitea.

1.9.0 é lançado. Existe uma chance de chamar a atenção para este tíquete?

@igsol
Este é o meu desejo também.

Isso ajudaria?

8340

Isso não esconderia todos os usuários da exibição pública?

Somente se REQUIRE_SIGNIN_VIEW for verdadeiro e você não estiver conectado.

Somente se REQUIRE_SIGNIN_VIEW for verdadeiro e você não estiver conectado.

Se REQUIRE_SIGNIN_VIEW for verdadeiro, ele estará oculto de qualquer maneira. Em segundo lugar, ele ainda ocultaria todos os usuários, o que não é o objetivo da solicitação. Especialmente porque alguns usuários só querem ocultar um único usuário e eu acho que seria um pouco exagero se você ocultasse TODOS os usuários já criados apenas por causa de 1 conta do sistema.

OK, desculpe.

Então, podemos atualizar o problema.

O que é desejado?

uma nova configuração: ALLOW_VIEW_USERS?

O que é desejado?

Idealmente, do meu ponto de vista pessoal, gostaria de uma configuração que cada usuário pudesse definir assim:

...
Ocultar conta da visão pública []
...

Que seria entre outras configurações, como _Ocultar endereço de e-mail_.

Também seria bom incluí-lo nas configurações de administrador, embora eu ache que tornar todos capazes de decidir é a melhor solução.

Se isso for implementado, todos os repositórios desse usuário devem se tornar privados, o que é uma alteração não trivial IMHO. Por exemplo, os repositórios bifurcados devem ser públicos se o repositório de origem for público, portanto, a existência do usuário será eventualmente exposta.

Se isso for implementado, todos os repositórios desse usuário devem se tornar privados, o que é uma alteração não trivial IMHO. Por exemplo, os repositórios bifurcados devem ser públicos se o repositório de origem for público, portanto, a existência do usuário será eventualmente exposta.

Idealmente, essa forma deve ser opcional. Vejo casos de uso em que você deseja apenas _deslistar_ (como vídeos _não listados_ no YouTube) um usuário, o que significa que você não deseja que esse usuário seja exibido com destaque como se fosse o rei do seu Gitea, mas você não teria problemas se ele estava escondido em algum lugar na selva de sua Gitea. Este exemplo é verdadeiro para minha instância.

Idealmente, essa forma deve ser opcional. Vejo casos de uso em que você deseja apenas _deslistar_ (como vídeos _não listados_ no YouTube) um usuário, o que significa que você não deseja que esse usuário seja exibido com destaque como se fosse o rei do seu Gitea, mas você não teria problemas se ele estava escondido em algum lugar na selva de sua Gitea. Este exemplo é verdadeiro para minha instância.

Mas esse problema deve ser intitulado "Remover alguns usuários da Gitea". 😁

Idealmente, essa forma deve ser opcional. Vejo casos de uso em que você deseja apenas _deslistar_ (como vídeos _não listados_ no YouTube) um usuário, o que significa que você não deseja que esse usuário seja exibido com destaque como se fosse o rei do seu Gitea, mas você não teria problemas se ele estava escondido em algum lugar na selva de sua Gitea. Este exemplo é verdadeiro para minha instância.

Mas esse problema deve ser intitulado "Remover alguns usuários da Gitea". 😁

Acho que o título mais preciso seria "Ocultar ou remover usuários da lista". Fornecer as duas opções seria uma ótima solução.

Esses recursos também devem estar disponíveis para organizações, é claro.

+1 para ocultar (todos) os usuários quando não estou logado, explorer + API, mas, quando estou logado, quero ver (todos) os usuários.

Eu uso MariaDB.
Com users.tmpl não consigo aplicar o que quero, porque, quando estou logando, não consigo ver os usuários também.
A API sempre pode listar todos os usuários.

Preciso exibir o usuário na visão pública, mas nem todos os usuários.

cd / etc / gitea
nano app.ini
REQUIRE_SIGNIN_VIEW: verdadeiro
Funciona muito bem! Mas, essa opção era extrema!
O aspecto da segurança passou a ser respeitado, mas preferimos poder escolher se queremos ser visíveis ou não, como utilizador público ou privado.

+1, precisamos ocultar a guia ExplorerUser OU escolher qual usuário (local ou ldap) deve ser listado na lista ExplorerUser ... é fácil recuperar o login do usuário e depois aplicá-lo à força bruta ... ou qualquer outra coisa
Obrigado por esta ferramenta maravilhosa., Gitea

REQUIRE_SIGNIN_VIEW = verdadeiro

Parece funcionar.

@Braqoon Você não leu a conversa. Não "faz o truque".

Seria ótimo se isso pudesse ser implementado.
Quero expor alguns dos meus repositórios (públicos) a pessoas que não estão registradas na minha instância do gitea, mas não quero mostrar a todos os meus usuários registrados (incluindo o administrador). Como @theAkito mencionou, simplesmente REQUIRE_SIGNIN_VIEW = true não resolve o problema.

Editar:
Pior ainda, acabei de verificar a API-Call curl -X GET "http://gitea/api/v1/users/search" -H "accept: application/json" mencionada por @shuhaowu. Mesmo os usuários não registrados podem facilmente descobrir informações críticas, como is_admin ou last_login . Em termos de segurança, isso é absolutamente proibido.

Eu concordo totalmente que seria muito útil possivelmente ocultar usuários que não têm repositório público. Digamos que eu adicione alguns usuários para comentar sobre problemas em projetos privados, seria perfeito se eles pudessem ficar invisíveis na lista de exploração!

Será ótimo não mostrar usuários que não têm repositório público

Vejo muitos comentários aqui, mas nenhuma especificação ou proposta de como ele é configurado.

Uma configuração sensata que pudesse manter o sistema atual e oferecer as visualizações restritas propostas provavelmente levaria à implementação.

Por exemplo, um bloco de configuração sugerido:

[explore.users]
REQUIRE_SIGNED_IN=false ; set to true to only allow signed in users to see this page
ONLY_SHOW_USERS_WITH_PUBLIC_REPOS=false ; set to true to only show users with public repos
...

e assim por diante.

Então, seria simples de implementar.

@zeripath, a abordagem apresentada por você me parece razoável e deve abranger a maioria dos casos de informações expostas, se as alterações de configuração implementadas afetarem também o acesso à API.

Do nosso lado, achamos que este é um problema de segurança sério.

Gitea vaza informações pessoais críticas: Nome, Sobrenome, login, e-mail, data de criação (quando eles se juntaram à nossa organização).

Em nosso caso, Gitea usa autenticação LDAP e basicamente vaza todas as informações de nossos membros, sem nenhuma forma de limitar / interromper esse vazamento.

REQUIRE_SIGNIN_VIEW não pode ser usado porque quebra repositórios públicos. Bloquear / api / v1 / users / search endpoint interrompe a capacidade de adicionar um usuário a um repositório.

Seria muito bom ter pelo menos uma maneira de limitar o vazamento para usuários autenticados.

@fluboi por enquanto você pode limitar o acesso à API para usuários autenticados

EDITAR: parece que não há configuração apenas para API: /

É muito decepcionante ver as pessoas comentarem repetidamente sobre esse problema sem oferecer uma especificação ou configuração proposta, ou comentar sobre as deficiências ou melhorias em minha especificação proposta aqui: (https://github.com/go-gitea/gitea/issues/2908 # issuecomment-670616617)

Se tivesse havido mais resposta e consideração ao meu comentário trabalhando juntos sobre o que era necessário e o que funcionaria, isso teria sido implementado meses atrás.

Do jeito que está eu propus um PR para fechar isso, mas não sei se é suficiente.

Obrigado pelo seu trabalho @zeripath e desculpe pelo meu comentário anterior decepcionante.
Pelo que entendi, sua RP atende às nossas necessidades.
obrigado novamente

Se tivesse havido mais resposta e consideração ao meu comentário trabalhando juntos

Acho que o motivo não é preguiça ou má intenção, mas sim a falta de compreensão do backend e talvez até da linguagem em que está escrito. Pelo que vi, a maioria das pessoas aqui não tem nenhuma ideia sobre Go, como eles são apenas usuários deste servidor e não desenvolvedores.
Não posso falar muito sobre todas essas pessoas que não conheço, mas posso falar por mim mesmo:
Não entendo o backend do Gitea e não quero me envolver com Go, porque não gosto da linguagem e já existem muitos programadores Go por aí, de qualquer forma, então não há necessidade de fazer outra coisa na vida, desnecessariamente. Por exemplo, se o backend fosse escrito em Nim, eu estaria disposto a contribuir alegremente, talvez até mesmo consertar esse problema sozinho, já que Nim é na verdade divertido e puro prazer, enquanto Go é puro fardo e aborrecimento, para mim pessoalmente. No entanto, se fosse esse o caso, provavelmente todos os contribuintes atuais iriam embora, porque preferem ficar com Go.

Eu também acho que não faz muito sentido para as pessoas adicionando ideias aleatórias sobre a implementação, se elas não têm ideia sobre a estrutura do backend e / ou a linguagem. Provavelmente é melhor, se aqueles com mais conhecimento decidirem sobre a implementação, especialmente em relação aos recursos orientados à segurança, que geralmente são importantes para serem implementados corretamente e não necessariamente de forma bonita.

Claro, este é um projeto de código aberto e você ou qualquer outro contribuidor não tem nenhuma obrigação de implementar nada, exceto talvez para grandes patrocinadores, que patrocinam apenas até certo ponto para esses benefícios. Acho que todos nós entendemos isso.
No entanto, as pessoas aqui intervêm, explicando seu problema, enfatizando a importância dele, na esperança de que a liderança da Gitea resolva esse problema o mais rápido possível, em vez de tantos outros problemas neste repositório que estão sendo tratados. Então tudo que as pessoas aqui estão pedindo, não é para trabalhar mais, mas apenas para mudar o foco das questões. Simplesmente: jogue fora outro problema e resolva este.

Por isso acho que é válido entrar aqui, enfatizando a importância desse assunto, mesmo que aquela pessoa que postou um comentário não tenha tempo, interesse ou simplesmente não tenha conhecimento para ajudar na implementação. A maioria das pessoas aqui são apenas usuários, assim como eu.

Acho que o motivo não é preguiça ou má intenção, mas sim a falta de compreensão do backend e talvez até da linguagem em que está escrito. Pelo que vi, a maioria das pessoas aqui não tem nenhuma ideia sobre Go, como eles são apenas usuários deste servidor e não desenvolvedores.

Eu não posso mais concordar. Eu sou um desenvolvedor, mas não estou em Go e não dediquei tempo para me familiarizar com o código base e a forma como o aplicativo funciona, então certamente seria contraproducente comentar sobre a implementação e então eu apenas retransmiti minha necessidade do usuário!
Mas eu realmente aprecio o trabalho realizado (manter outros projetos de código aberto, sei que não é uma tarefa fácil e o feedback dos usuários nem sempre é o que você esperaria!).

Por favor, continue no tópico, se você não tem nada a acrescentar sobre um assunto específico, por favor, não comente.

Apenas uma observação lateral e esperemos que esta discussão fora do assunto termine: nenhum dos contribuidores do Gitea é pago para desenvolver novos recursos ou corrigir bugs, todos nós fazemos isso em nosso tempo livre, então, a menos que alguém esteja disposto a patrocinar um recurso ou desenvolvimento específico, todos, incluindo os colaboradores do Gitea, são livres para desenvolver o que quiserem, e a "liderança" do Gitea não tem voz sobre o que os outros colaboradores precisam fazer quando estão dedicando seu tempo livre a este projeto desenvolvendo recursos de que precisam ou se divertindo fazendo.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

thehowl picture thehowl  ·  3Comentários

jakimfett picture jakimfett  ·  3Comentários

Fastidious picture Fastidious  ·  3Comentários

thehowl picture thehowl  ·  3Comentários

cookiengineer picture cookiengineer  ·  3Comentários