[OFF] SEGURAN?A NA APLICA?ÃO .NET
Agora deixo essas perguntas:
1 - Alguém passa a informação a informação para o banco de dados através de parâmetros. Afim de não informar quais campos existe no banco de dados ?
2 - Alguém aqui autentica o usuário do banco de dados na tela de login do executável ou já deixa dentro do código ou arquivo texto / registro ?
3 - Alguém usa embaralhador de código ?
4 - Alguém cria uma conta de usuário no sistema operacional autenticando através de certificado digital ( proteção contra cópias e acessos não autorizados ) para proteger a integridade dos arquivos fontes do executável ?
5 - Alguém aqui cria regras de negócio e validação dentro do próprio banco de dados, afim de evitar, que esteja exposto no código fonte ?
Quero saber de que forma as pessoas tentam proteger a Integridade de sua aplicação e dados.
Seria interessante alguém deixar Links de programas embaralhadores FREE de códigos .NET.
Fico na expectativa de debatermos esses itens ou demais que vierem aparecer. Falou
questao de conexao a maioria e local, entao a seguranca fica presa nisso.
Para embaralhar o codigo ultilizo o http://www.red-gate.com/dynamic/products/dotnet-development/smartassembly/download
é um tal de quebrar linha sem necessidade e de concatenar textboxs que da até medo.
o que custa usar parametros? NADA, pelo contrário é seguro e organizado mas ai fica um monte de [Ô]&[Ô] e [Ô]+[Ô] que eu fico doido
Sei que a maioria são ótimos programadores, mas por favor boas práticas é sempre bem vindo, mesmo que esse código seja escrito somente pra você
obfuscador
http://en.wikipedia.org/wiki/List_of_obfuscators_for_.NET
aqui tem uma lista com eles e suas releases.
é primordial (essencial mesmo) que embaralhemos nossos códigos
o sistema pode até ser do cliente mas o código amigo, é nosso
1 - Se usa parametrização não para [Ô]esconder[Ô] os campos, mas para evitar ataques como de SQL Injection por exemplo.
2 - A autenticação do usuário é bastante relativa, depende muito do caso e até mesmo da preferência. No meu caso, raramente tenho trabalhado com aplicações desktop, então é indiferente para mim, já que o acesso externo é bastante limitado.
3 - Embaralhador de código, ou ofuscador, dificulta a ação de espertinhos, mas não evita. Essa é mais uma das vulnerabilidades de aplicações Desktop.
4 - Não vejo a menor necessidade disso, mesmo para aplicações Desktop. Como disse, se usar as boas práticas de maneira correta, é menos dor de cabeça.
5 - Existem casos em que se colocam regras de negócio dentro do banco, depende de como você estruturou sua aplicação.
Vejo que seu maior medo é o usuário espertinho que descompila seu código e descobre seus segredos. Bem, se esse for seu medo, sugiro que comece a pensar em aplicações Web ao invés de Desktop.
eu evito até de ler pq pra mim me parece uma linguagem diferente. E isso se torna ainda pior em c# por causa das {} ; e seus [Ô]derivados[Ô].
Uma outra coisa que muito programador faz é quebra de linha sem necessidade, ai o código fica gigantesco e quando falta um [Ô]{[Ô] ele nem sabe onde é( não no caso do VS que avisa ) e ai ficam pedindo ajuda pq não programa da maneira correta.
Vc fala bastante sobre web, mas seus aplicativos web se comunicam com alguma porta fisica do computador ?
Quando perguntei sobre parâmetros afim de esconder campos já, claro que deve haver um proposito de segurança ao esconder algo.
Na verdade quando vou inserir, atualizar, deletar quem cria o comando SQL é o componente que criei.
nunca escrevo uma só linha SQL para qualquer um desses fins.
Sobre isso que vc falou sobre a Injeção SQL, eu notei que agora é recomendado em PHP é o uso da classe MySQLi _funcao
estive lendo que a MySQL_funcao está obsoleta a este tipo de ataque.
Outra coisa que está agregado a este tipo de situação ( Injeção ) é a autenticação.
Repito, se o nome do usuário e senha está informado dentro da string de conexão é uma prática errada.
está mais propicio a este tipo de ataque.
O que eu proponho é pegar estes quesitos e fazermos testes e verifica onde pode ser melhorado.
Vc entra o sistema com um pendrive, mas como falei, aplicativos em .NET, de forma é feita a descompilação. o pendrive adianta muito ?
vc já pensou na possibilidade que o banco de dados poderia lhe passar uma instrução ou chamada para realizar a abertura do aplicativo ?
porque imagine, mesmo ele sendo descompilado, a instrução vinda do DB não seria tão fácilmente descoberta. principalmente se ela estivesse onlne.
Citação:KERPLUNK
Uma coisa a ser considerada é: Em se tratando de TI/sistemas, não existe absolutamente nada 100% seguro e isso é FATO. Para cada pessoa pensando em segurança, tem pelo menos 20 pensando em como burlar. Falhas de segurança existem até mesmo em VB6, veja por exemplo o grande número de pessoas aqui no fórum mesmo, que ainda utiliza concatenação de strings para formar um comando SQL. Isso é uma brecha enorme de segurança, para SQL Injection, um usuário um pouco mais espertinho consegue isso sem muitos problemas. Também vejo muitos casos de pessoas que [Ô]abrem[Ô] o banco de dados e conectam via ADO por LAN e até mesmo por internet. Isso é outra falha colossal de segurança. WebAPI, como já mencionei, é o método usado para integração pelos maiores provedores de serviço da internet. Ele possui falhas de segurança? Bem, sim, se mal implementado pode ser uma faca de dois gumes. Existe como prevenir isso? Sem dúvida! E informação para isso é o que não falta aqui na internet. Existem milhares, literalmente milhares de vÃdeos, artigos, fora(plural de Fórum), blogs, apostilas, enfim uma infinidade de informação sobre isso. Como é uma coisa muito mais conceitual do que necessariamente prática, as pessoas têm dificuldade de entender e se não tem nenhuma experiência com isso acaba desistindo na [Ô]sopa de letrinhas[Ô] que acaba se tornando.
Eu Concordo......
1 - se eu criar uma DLL em C# .NET ela também pode ser descompilada ? ela vira MSIL ? C#
2 - Se eu criar uma DLL em VB6 ela pode ser chamada de qual forma no .NET ? C#
A Dll em VB6 ainda vai depender do MSVBM60.dll ?
Será que uma Dll Criada em VB6 e usada em .NET só para troca de strings vai parar de funcionar com o Windows 10 ?