ALGUM COLEGA GURU EM DESENVOLVIMENTO WEB ?
Bom dia,Pessoal !
Tenho uma dúvida simples sobre a segurança em sistemas WEB.
Se algum colega esclarecer fico grato:
Dúvida:
Digamos que tenho uma aplicação WEB, que acessa um Banco de Dados no mesmo servidor. Ambos Hospedados num Servidor Web qualquer (Windows ou Linux).
é possÃvel para um Hacker , invadir e ter acesso ao Banco de Dados no Servidor , [Ô]Independente [Ô] de minha aplicação?
Eu pergunto, pois recentemente numa discussão técnica , eu disse que :
Minha opinião : Se a minha aplicação tomar os [Ô]devidos cuidados[Ô], não tem como um usuário ( Hacker ) acessar minha Base de dados. Pois, somente minha aplicação
tem os dados para conexão ( Senha , etc...)
Um colega, no entanto disse que eu estava errado. Pois segundo ele, se houverem falhas de segurança no servidor Web. O Hacker pode usar as camadas do
servidor Web , para invadir o banco de dados, sem ter que passar minha aplicação.
Como não desenvolvo para Web. Mas sim para Desktop, não tenho certeza se é possÃvel.
Algum colega, pode esclarecer se é possÃvel ?
Tenho uma dúvida simples sobre a segurança em sistemas WEB.
Se algum colega esclarecer fico grato:
Dúvida:
Digamos que tenho uma aplicação WEB, que acessa um Banco de Dados no mesmo servidor. Ambos Hospedados num Servidor Web qualquer (Windows ou Linux).
é possÃvel para um Hacker , invadir e ter acesso ao Banco de Dados no Servidor , [Ô]Independente [Ô] de minha aplicação?
Eu pergunto, pois recentemente numa discussão técnica , eu disse que :
Minha opinião : Se a minha aplicação tomar os [Ô]devidos cuidados[Ô], não tem como um usuário ( Hacker ) acessar minha Base de dados. Pois, somente minha aplicação
tem os dados para conexão ( Senha , etc...)
Um colega, no entanto disse que eu estava errado. Pois segundo ele, se houverem falhas de segurança no servidor Web. O Hacker pode usar as camadas do
servidor Web , para invadir o banco de dados, sem ter que passar minha aplicação.
Como não desenvolvo para Web. Mas sim para Desktop, não tenho certeza se é possÃvel.
Algum colega, pode esclarecer se é possÃvel ?
Seu Colega esta Correto
se o servidor em questão não tiver se segurança, e se banco não for criptografado
sim esta vulnerável
se o servidor em questão não tiver se segurança, e se banco não for criptografado
sim esta vulnerável
Tecnicamente, não há diferença nesse quesito por causa do tipo de aplicação. Em se tratando de Web, não existe absolutamente nada totalmente seguro; Existem servidores com nÃvel alto de segurança, mas jamais será 100%. Imagine assim:
Você tem um cofre, que tem combinação para abrir. Você faz o procedimento de abertura, abre e guarda ou retira objetos dele. Você sabe como abrir, logo, ele pode ser aberto de alguma maneira. Isso significa que existe como abrir esse cofre, ainda que seja algo altamente complexo de ser feito, é possÃvel. Um cofre sem portas seria um cofre 100% seguro, mas também inacessÃvel.
Esse mesmo paradigma serve para aplicações. Você pode dificultar para que um hacker possa acessar, mas alguma abertura é obrigatória. O design que você descreveu, eu diria ser altamente inseguro. Banco de dados e aplicação devem estar separados caso contrário as possibilidades para [Ô]acesso mal intencionado[Ô] seriam enormes.
Você tem um cofre, que tem combinação para abrir. Você faz o procedimento de abertura, abre e guarda ou retira objetos dele. Você sabe como abrir, logo, ele pode ser aberto de alguma maneira. Isso significa que existe como abrir esse cofre, ainda que seja algo altamente complexo de ser feito, é possÃvel. Um cofre sem portas seria um cofre 100% seguro, mas também inacessÃvel.
Esse mesmo paradigma serve para aplicações. Você pode dificultar para que um hacker possa acessar, mas alguma abertura é obrigatória. O design que você descreveu, eu diria ser altamente inseguro. Banco de dados e aplicação devem estar separados caso contrário as possibilidades para [Ô]acesso mal intencionado[Ô] seriam enormes.
gostei do cofre.
absolutamente simples e claro.
desenvolvi para web por 5 anos, e dentre meus procedimentos de segurança estão basicamente:
servidor unix com ngix
cron configurado para realizar backup dos bancos de dados a cada hora, preservo sempre o backup das 0h (dependendo
da importância dos dados, é preservado por uma semana ou mais).
nunca uso ferramentas para desenvolver (alias a meu ver, este é o maior problema de qualquer desenvolvimento,
pois elas fazem qualquer um pensar que é um programador), então, desenvolvo completamente meus códigos.
campos importantes em tabelas são salvos com criptografia.
códigos importantes, hospedados na raiz do servidor, ou acima de public_html.
absolutamente simples e claro.
desenvolvi para web por 5 anos, e dentre meus procedimentos de segurança estão basicamente:
servidor unix com ngix
cron configurado para realizar backup dos bancos de dados a cada hora, preservo sempre o backup das 0h (dependendo
da importância dos dados, é preservado por uma semana ou mais).
nunca uso ferramentas para desenvolver (alias a meu ver, este é o maior problema de qualquer desenvolvimento,
pois elas fazem qualquer um pensar que é um programador), então, desenvolvo completamente meus códigos.
campos importantes em tabelas são salvos com criptografia.
códigos importantes, hospedados na raiz do servidor, ou acima de public_html.
Já eu uso T4 o tempo todo. Na verdade, consigo hoje criar aplicações CRUD em poucos minutos, se forem apenas telas de manutenção de dados(CRUD), não preciso fazer nada senão fazer o design do banco, que na verdade uso POCO/Migrations e Entity Framework quando o banco é Oracle ou Sql Server, porque o client para oracle e sql server é mais estável. Quando o banco de dados é MySQL ou Firebird, uso outro approach, com o NHibernate.
Pessoal,
As respostas foram bem claras.
Mas, ainda não entendi como alguém que não conhece o nome de usuário e senha do Banco,
consegue abrir e ler meu dados no Oracle ou Sql Server , usando somente o Servidor Web,independente
de minha aplicação.
As respostas foram bem claras.
Mas, ainda não entendi como alguém que não conhece o nome de usuário e senha do Banco,
consegue abrir e ler meu dados no Oracle ou Sql Server , usando somente o Servidor Web,independente
de minha aplicação.
Tem muitas maneiras de se fazer isso... Ele nem sequer precisa [Ô]abrir[Ô] o banco de dados, da maneira como você faz na sua aplicação; Dados são gravados em algum lugar fisicamente, um ou mais arquivos, geralmente. Através de técnicas de impersonação, sniffing e spoofing é possÃvel [Ô]copiar[Ô] esses arquivos e remontar esses arquivos em um banco local ou alguma outra técnica de engenharia reversa.
Agradeço a todos pelas respostas.
Tópico encerrado , respostas não são mais permitidas