Não tenho muita experiência com aplicativos de desktop, mas se eu tivesse que criar um aplicativo de desktop do servidor cliente, o acesso aos dados seria feito por meio de um serviço da web. Acredito que o acesso a dados através de um serviço da web fornece segurança - não preciso passar o nome de usuário e a senha do servidor db, etc.
Antes dos serviços da web, como os aplicativos de banco de dados faziam isso? Todas as informações importantes do banco de dados foram passadas para a instalação do aplicativo de desktop? Em caso afirmativo, como os programadores gerenciavam o aspecto de segurança? Ou os programadores usaram algo semelhante aos serviços da web?
programming-practices
security
Uivos Hagrid
fonte
fonte
Respostas:
Dependendo do que você chama de serviço da web.
Antes do WSDL e do REST, ainda havia HTTP, então basicamente tudo o que você pode fazer agora também pode ser feito antes.
Havia uma falta de uniformidade (razão pela qual o WSDL e o REST foram criados em primeiro lugar), mas forneceu o mesmo nível de confidencialidade e segurança dos dados dos quais você está falando.
Na verdade, você também pode evitar o uso do HTTP: você pode redigir seu próprio protocolo e usar um servidor personalizado e clientes personalizados que abririam um soquete para esse servidor e obteriam os dados necessários (ou publicariam os dados). Aqui, você perde todo o benefício de padronização do HTTP, mas, mais uma vez, não dá acesso ao banco de dados aos clientes.
fonte
Ah, quando tínhamos paus e pedras.
Antes da Internet, tínhamos algo chamado arquitetura "cliente / servidor" e redes locais. Se você não estava tentando estabelecer uma conexão com um servidor a vários quilômetros de distância, essas redes funcionavam perfeitamente bem para realizar quase tudo. Você pode até estabelecer letras de unidade e usar conexões com servidores de arquivos como um disco rígido remoto, se quiser. Se você estivesse a vários quilômetros de distância, poderia usar uma rede de área ampla para fazer essencialmente a mesma coisa, embora a uma velocidade mais lenta e a um custo maior.
A maneira mais barata de conversar remotamente era passar informações pelas linhas telefônicas usando dispositivos chamados modems, e se você quisesse criar algo em que dois computadores conversassem entre si por meio de aplicativos, você faria da mesma maneira que faz hoje: estabelecendo um protocolo de comunicação. Não há nada de mágico nisso; ambos os lados precisam concordar com o significado de todos os bytes.
Desde os estágios iniciais da Internet, havia maneiras de as máquinas se comunicarem através dela. Serviços da Web são apenas o sabor mais recente da semana.
fonte
Apenas para esclarecer alguns conceitos primeiro ...
Acho que você está confundindo os conceitos de (1) Transport Layer Security (TLS) e (2) controles de acesso na declaração acima ... Se um nome de usuário e senha precisam ser fornecidos ou não, isso não tem relação com o fato de um serviço da Web ser fornecida através de (1) um canal criptografado e (2) autenticação (por exemplo, uma chave API).
Um serviço da Web extremamente mal escrito ainda pode exigir que as senhas sejam enviadas em texto sem formatação por HTTP. Uma pessoa mal escrita pode fazer isso por HTTPS (seguro, mas uma vez quebrado, por exemplo, através de um ataque do tipo intermediário , aberto a abusos). Um serviço da Web melhor escrito deve lidar com a conectividade do banco de dados internamente com base em outras entradas, por exemplo, IDs de sessão, após a validação dos controles de autenticação e direito.
De volta ao ponto principal, o comentário de @ marcus sobre sua pergunta é basicamente isso. Os aspectos de segurança não são tratados de maneira diferente das tecnologias "modernas" e cobrem questões de implementação, como:
X.X.X.X
com um nome de usuário e senha e depois executar a consultaINSERT INTO user_address ...
?Para maiores informações:
fonte