Jump to content


Photo

Componentes .net


  • Faça o login para participar
6 replies to this topic

#1 chacal009

chacal009

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 27/08/2009, 09:30

Salve.. salve!!!

Pessoal.. minha dúvida é a seguinte!
Referente a criação de componentes para uso em páginas ASP.NET... eu crio um componente.. referencio em minha páginaa.. compilo ele no diretório bin do meu projeto (.DLL).

Minha dúvida esta ai... ao publicar meu site num servidor qualquer na web com hospedagem compartilhada (evidente que com suporte a .NET)... eu posso utilizar este meu componente normalmente... tipoww.. ele rodaria da mesma forma que roda aqui em minha maquina local?... o diretório bin para que funcione... tem q ser habilitado de alguma forma pelo servidor na web para que funcione efetivamente.. ou simplesmente eu crio uma pasta em meu server com nome "bin" (igual a pasta do meu projeto rodando localmente) e publico meu componente neste diretorio normalmente?... digamos da forma mais simples um verdadeiro "CTRL+C e CTRL+V" no servidor?

Sou novato.. estou começando a aprender .NET (devem ter notado) rs... espero que tenha entendido minha dúvidaa... qlker coisa post um salve aii!!!

haa.. outra questão.. gostaria da opnião de vocês quanto a criação e uso de componentes próprios... o que vocês acham?
é mais seguro que deixar o ccódigo fonte na página .aspx normalmente.. ou compilando o código deixando-o como (.dll) o torna mais seguro?.. tipoww... há mais vantagens que desvantagens?? quais?
tipoww.. eu criando um componente de criptografia por ex.. e compila-lo.. é mais seguro que deixar o código de criptografia em uma página .aspx normal??.. ou um componente para acesso a uma base de dados.. etc
isso tornaria a aplicação mais lenta?

Agradeço a atenção.
Valewww!!!

Edição feita por: chacal009, 27/08/2009, 09:35.

the CHACAL

"Quando me chamam de AMADOR, lembro que os amadores construíram a Arca, e os PROFISSIONAIS o Titanic"

#2 nvivo

nvivo
  • Visitantes

Posted 27/08/2009, 10:11

ao publicar meu site num servidor qualquer na web com hospedagem compartilhada (evidente que com suporte a .NET)... eu posso utilizar este meu componente normalmente... tipoww.. ele rodaria da mesma forma que roda aqui em minha maquina local?... o diretório bin para que funcione... tem q ser habilitado de alguma forma pelo servidor na web para que funcione efetivamente.. ou simplesmente eu crio uma pasta em meu server com nome "bin" (igual a pasta do meu projeto rodando localmente) e publico meu componente neste diretorio normalmente?... digamos da forma mais simples um verdadeiro "CTRL+C e CTRL+V" no servidor?


Isso. A pasta bin não tem nada de especial, é um diretório qualquer.

A única coisa que você precisa fazer é criar uma 'aplicação do IIS' na raiz do seu site. Isso porque essas pastas como a bin, App_Data, App_Code e outras são localizadas sempre em relação a raiz da aplicação, não do site. Ou seja, se sua aplicação estiver em "www.site.com.br/pasta/subpasta/", a pasta "bin" e as outras devem estar dentro em subpasta/ e não em /.

haa.. outra questão.. gostaria da opnião de vocês quanto a criação e uso de componentes próprios... o que vocês acham?
é mais seguro que deixar o ccódigo fonte na página .aspx normalmente.. ou compilando o código deixando-o como (.dll) o torna mais seguro?.. tipoww... há mais vantagens que desvantagens?? quais?


Sobre componentes, obviamente você vai criar os seus. Apenas veja se o que você está criando já não existe pronto... as pessoas tem mania de criar classes de acesso a dados, de criptografia, e etc. Isso tudo já existe. Não reinvente a roda.

Sobre ser mais seguro ou não, isso não faz muita diferença. Quem acessa de fora não tem acesso ao fonte assim como ASP, PHP ou qualquer outra linguagem. E se você está preocupado com a equipe do site de hospedagem roubar o seu fonte, é muita paranoia. Ninguem nunca esquentou a cabeça com isso com ASP ou PHP, não sei porque esquentam a cabeça agora. E tanto ASP.NET ou Java podem ser facilmente descompilados. De qualquer forma, sem querer menosprezar ninguem e com todo o respeito, mas duvido que você esteja criando alguma última maravilha do mundo ou algum segredo de estado, certo?

Sobre compilar ou não compilar... a seu gosto. Em sistemas internos e intranets, eu prefiro compilar. Em sites na internet eu prefiro deixar o fonte, simplesmente porque é mais fácil de modificar de qualquer lugar. Isso acontece muito com websites...

A velocidade de execução é a mesma, exceto pelo "startup" de aplicações não compiladas. A primeira execução é um pouquinho mais lenta devido a compilação, mas dá pra melhorar com o "batch='true'" no web.config. Minha dica é: se você está vendendo um SISTEMA e não quer vender o fonte, coloque só o compilado no ar. Se você está criando um site pessoal simples, ou vendendo um site institucional que geralmente vai com o fonte, poe o fonte pra evitar dor de cabeça. Afinal, as pessoas estão acostumadas a alterar o fonte de sites desse tipo.

tipoww.. eu criando um componente de criptografia por ex.. e compila-lo.. é mais seguro que deixar o código de criptografia em uma página .aspx normal??.. ou um componente para acesso a uma base de dados.. etc
isso tornaria a aplicação mais lenta?


Tudo no .NET vai ser compilado uma hora ou outra, e a velocidade de execução vai ser a mesma. Tanto faz o código estar em uma DLL, ou na página. O que vai influenciar é se o site está rodando em modo debug ou não, e o seu código em si. Existem algumas outras variáveis, como o número de DLLs que você usa, e etc. Mas o efeito delas pode ser desconsiderado geralmente.

Dica: componente de criptografia provavelmente é reinvenção da roda. Você consegue criptografar qualquer coisa com 1 ou 2 linhas de código usando as classes do namespace System.Security.Cryptography.

[]'s

#3 chacal009

chacal009

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 27/08/2009, 11:57

opawww.. valew pela resposta!

rsrs... paranoiaa.. essa foi boua.. kkk
mais o esquema eh que se trata de uma plataforma de comércio eletrônico[[ao qual devo proteger até dos proprios admnistradores do servidor... ja que é um servidor compartilhado e só mais adiante esta plataforma será transferida para um servidor dedicado]]... Esta plataforma dentre outros recursos utilizará dados de cartões de crédito de clientes; dentre outras informações sigilosas dos mesmos; entre outras... entãoo.. quanto mais "paranoia".. melhor!! [:D]

criptografia... euu citei como exemplo somente.. até pQ utilizar sistemas de criptografia prontos.. eh melhor.. jah q são desenvolvidos por empresas especializadas e dedicadas... aos quais passam por rigorosos testes e aperfeiçoamentos.. além de ser simples e fácil a utilização... ganhando em produtividade.

estava pensando em criptografia quântica.. porém eh muito complicado.. e neccessitam de recursos de hardware e software que por enquanto.. é praticamente impossível.. por enquanto!! mais tudo bem.. por enquanto naum vou criar a tal maravilha do mundo como citou... kkk :D

haa.. não será um sistema que será disponibilizado e/ou vendido... eh um sistema próprio e restrito a empresa... portanto somente pessoas envolvidas no projeto poderão acessar o fonte do mesmo.


bomm... quanto maior a segurança no sistema.. melhor!!!... eu desenvolvo sistemas já.. porém utilizando outras linguagens... agora mudando para a plataforma .NET .. apesar de fácil aprendizado.. algumas dúvidas "bobas" podem surgir.. como esta.

Obrigado nvivo pelas informações!!! [:D]

se alguém mais tiver experiências para compartilhar a respeitos de componentes no .NET ... por favorr... falem.. pois não há muita informação a respeito na net de usos de componentes.. problemas.. etc. (pelo menos não achei algo valioso). apenas artigos básicos e simplórios dmais.


flows!!!

Edição feita por: chacal009, 27/08/2009, 12:18.

the CHACAL

"Quando me chamam de AMADOR, lembro que os amadores construíram a Arca, e os PROFISSIONAIS o Titanic"

#4 nvivo

nvivo
  • Visitantes

Posted 27/08/2009, 12:56

mais o esquema eh que se trata de uma plataforma de comércio eletrônico[[ao qual devo proteger até dos proprios admnistradores do servidor... ja que é um servidor compartilhado e só mais adiante esta plataforma será transferida para um servidor dedicado]]... Esta plataforma dentre outros recursos utilizará dados de cartões de crédito de clientes; dentre outras informações sigilosas dos mesmos; entre outras... entãoo.. quanto mais "paranoia".. melhor!! [ :D ]


Então, nesses casos é bom ter segurança. Números de cartão de crédito é um tipo de informação que você deve manter no servidor o mínimo de tempo possível, só até a transação ser efetuada, e se possível o número criptografado. Depois disso é descartada. E hoje em dia, a maioria dos sites nem armazena isso, já que a propria instituição financeira proporciona uma página pra entrar com esses dados direto. Mas você está certo, segurança nunca é demais. A não ser que afete o orçamento, aí qualquer empresa manda a segurança pro espaço. =)

criptografia... euu citei como exemplo somente.. até pQ utilizar sistemas de criptografia prontos.. eh melhor.. jah q são desenvolvidos por empresas especializadas e dedicadas... aos quais passam por rigorosos testes e aperfeiçoamentos.. além de ser simples e fácil a utilização... ganhando em produtividade.


Na verdade acredito que você não precise de mais do que 2 ou 3 funcoezinhas de 5 linhas no máximo. É realmente simples. O .NET tem implementado uma série de algoritimos muito bem testados pra criptografia simétrica, assimétrica e de hash.

Todos eles tem exatamente o mesmo modo de funcionamento, você instancia a classe, passa um array de bytes, e ele retorna o array de bytes criptografado. Use a classe System.Text.Encoding pra transformar texto em bytes e vice versa. Com isso você já cobre criptografia de cartoes de credito e etc com uma chave privada.

Para senhas e etc, use um hash em vez de um simétrico.

Dica: Utilize o Rijndael (AES) pra simétrico (1 chave para criptografar e descriptografar) e o RIPEMD160 pra hash. Isso porque esses dois tem implementações 100% em .NET, e rodam em qualquer ambiente de segurança restrita (como dentro do SQL Server). As outras como TripleDES e MD5 utilizam a API do windows, e podem precisar de permissões especiais em partial trust.

estava pensando em criptografia quântica.. porém eh muito complicado.. e neccessitam de recursos de hardware e software que por enquanto.. é praticamente impossível..


Haha realmente, a não ser que você queira esperar uns 30 ou 40 anos pra implementar seu site, é bom deixar ela de lado por enquanto... =)

se alguém mais tiver experiências para compartilhar a respeitos de componentes no .NET ... por favorr... falem.. pois não há muita informação a respeito na net de usos de componentes.. problemas.. etc. (pelo menos não achei algo valioso). apenas artigos básicos e simplórios dmais.


Existe bastante informação sim. É que a maioria está em inglês. E existem muitos componentes pagos e abertos por aí. O que acontece é que a grande maioria das coisas já está disponívei diretamente no framework, que é realmente grande. Recomendo ter o MSDN instalado pra ajuda, e abusar do F1. O prórpio MSDN é lotado de artigos e how-tos.

Se tiver alguma dúvida mais específica sobre algo, não hesite em perguntar.

[]'s

#5 chacal009

chacal009

    Novato no fórum

  • Usuários
  • 19 posts
  • Sexo:Masculino

Posted 27/08/2009, 14:19

Salve!!!

pois ehh... é usar e abusar na implementação de diferentes níveis de segurança!
estou estudando a política de segurança da plataforma... estudando cases... problemas diversos... etc... criando regras... e desenvolvendo estruturas próprias para genrenciamento de informações... claro que esta rodando a nível secundário... obdescendo a uma certa hierarquia.

serão vários os níveis/camadas que serão implementadas... regras.. etc.. ou seja.. para que um possível invasor consiga chegar a um nível crítico(seja que afete o sistema ou que possa ocorrer o possível roubo de informações)... o invasor terá que passar por vários níveis de segurança.. do mais básico ao mais complexo!!... já registrei aqui algumas técnicas de sucesso que serão implementadas.. e outras próprias q estou criando!

um problema mais grave seria a nível servidor... que claro.. estão sendo criadas regras e políticas de segurança para serem aplicadas nas configurações dos mesmo.. porém a escolha do DataCenter.. esse sim... ohh dúvida cruel..kkk


Gostaria de uma ajuda [[fugindo um poukinho da proposta do tópico]]... qual seria a melhor opção.. ter um Servidor Dedicado hospedado em um DataCenter Nacional ou Internacional (EUA, por ex)???... pois as leis Brasileiras em relação ao mundo virtual são muitos "brandas"... por outro lado, as leis Norte Americanas por exemplo são mais "rígidas" quanto a segurança na Internet(causando maior intimidação á possíveis invasores).... mais que por sua vez, a meu ver, há a complicação de serem servidores localizados em DataCenters de outros países, e por isso, quando houver algum problema de segurança da informação (uma invasão com roubo de dados, por ex).. podem se tornar na PRÁTICA quase "inviáveis" em se tratando de acionamento da Justiça, para se tomar as medidas cabíveis.... há este problema?


claro.. pode até ser pura bobeira o que eu disse... maiss... quaL a opnião de vocês sobre isso?? se tratando em segurança do lado do servidor?... pense também em dispositivos de Firewall, RAID, etc?... alguma sugestão de DataCenter? :D


e voltanduh a falar em componentes.... uma componente [.dll].. publicada na pasta "/bin"... há facilidade em poder ser baixada por qualquer pessoa(conheçendo-se o caminho desta pasta)??? e a pasta /bin... há algum nível de segurança específico a elaa que deve ser configurado no server??


Obrigado pela atenção.

Vlw!!!

Edição feita por: chacal009, 27/08/2009, 15:15.

the CHACAL

"Quando me chamam de AMADOR, lembro que os amadores construíram a Arca, e os PROFISSIONAIS o Titanic"

#6 nvivo

nvivo
  • Visitantes

Posted 27/08/2009, 16:36

Caro Chacal,

um problema mais grave seria a nível servidor... que claro.. estão sendo criadas regras e políticas de segurança para serem aplicadas nas configurações dos mesmo.. porém a escolha do DataCenter.. esse sim... ohh dúvida cruel..kkk


Eu acho que você está um pouco paranóico. =) Não há necessidades de tantas camadas, e etc. Há necessidade de fazer as coisas direito, só isso. Se você tem um formulário que pega um dado e insere no banco de dados, tudo que você precisa é se certificar que sua página só permita fazer isso. Por incrível que pareça, não há camada suficiente que projeta de erro de desenvolvimento. Olha só, nessa simples página que pega um dado e insere um registro, você pode:

1. Criar um código SQL por concatenação, e cair no velho sql injection.
2. Fazer referência a um javascript com chamadas ajax que manipula dados no banco. Ao abrir o javascript, o camarada encontra uma funcaozinha "lerInformacoesDoUsuario(id)".

A solução é:

1. Utilize parametros para qualquer query com o banco de dados.
2. Verifique no servidor antes de executar qualquer coisa se o usuário tem permissão para fazer a ação que foi solicitada.

É simples, não tem N camadas, não tem inúmeros níveis de segurança. Só está do jeito correto, e ponto final. Inventar muita coisa é bobeira.

Além do mais, a maioria das invasões hoje em dia raramente são por falhas técnicas (a não ser que o desenvolvedor seja uma mula, claro), mas sim porque o gerente da empresa quer porque quer uma página pra ver detalhes das vendas, mas ele cisma que a melhor senha do mundo é o próprio nome dele (que também é outra mula).

Outra coisa: não reinvente sistema de segurança, o .NET já tem um muito bom por Forms Authentication praticamente impossível de forjar. Não invente de criar seu próprio sistema de segurança. Ao invés disso, entenda como ele pode ser customizado.

Gostaria de uma ajuda [[fugindo um poukinho da proposta do tópico]]... qual seria a melhor opção.. ter um Servidor Dedicado hospedado em um DataCenter Nacional ou Internacional (EUA, por ex)???... pois as leis Brasileiras em relação ao mundo virtual são muitos "brandas"... por outro lado, as leis Norte Americanas por exemplo são mais "rígidas" quanto a segurança na Internet(causando maior intimidação á possíveis invasores).... mais que por sua vez, a meu ver, há a complicação de serem servidores localizados em DataCenters de outros países, e por isso, quando houver algum problema de segurança da informação (uma invasão com roubo de dados, por ex).. podem se tornar na PRÁTICA quase "inviáveis" em se tratando de acionamento da Justiça, para se tomar as medidas cabíveis.... há este problema?


Se você está realmente preocupado com a segurança dos seus dados, não coloque em data center nenhum. Contrate um link dedicado, e deixe o servidor na sua empresa, numa sala fechada, com vidros a prova de balas, câmeras 24 horas de todos os lados e 2 seguranças mal encarados na frente da porta.

Agora, se você não tem grana pra isso, vai ter que ceder a algumas exigências. Não importa a empresa, se tá em um data center, alguem vai de alguma forma ter acesso aos seus dados, você queira ou não. Então, a melhor coisa é: contrate uma empresa de confiança. Hoje no Brasil a Locaweb e a UOLHost são as mais famosas. Não que isso te garanta muita coisa... mas ainda é mais confiável que assinar um servidor nos EUA.

Sobre leis, acredito que você estaria mais seguro aqui do que nos EUA. O negócio fica todo aqui, em empresas que você conhece, e além do mais, o custo hoje em dia é praticamente o mesmo, ainda mais pra uma empresa.

claro.. pode até ser pura bobeira o que eu disse... maiss... quaL a opnião de vocês sobre isso?? se tratando em segurança do lado do servidor?... pense também em dispositivos de Firewall, RAID, etc?... alguma sugestão de DataCenter? :D


Cara, se você é programador, relaxa com essas coisas e deixa a empresa se virar. Não adianta você querer saber tudo, mesmo porque dificilmente as empresas vão te passar detalhes de como o sistema deles funciona. Um amigo meu tinha um site hospedado num servidor dos EUA que prometia o mundo, um dia deu um pau no HD e disseram que não tinha como recuperar, porque não havia RAID. Só que na propaganda do serviço tava aquela descrição linda de RAID, equipes cuidando de servidor e etc. Daí você pode até processar e etc, mas já perdeu.. portanto, confie em empresas sólidas, que estejam aqui, que tenham sede, que você conhece e etc.

Cá entre nós, pense bem: comércio eletrônico e venda por cartão, qualquer venda de esquina tem hoje em dia. Se o que a sua empresa tem pra armazenar fosse tão importante e tão visado assim, estariam contratando uma outra empresa especializada em vez de jogar na sua mão que ainda está aprendendo, concorda? =) Ou você vê analistas de segurança do Bradesco ou do Itaú fazendo perguntas nesse fórum sobre como proteger o website deles? =) Então relaxa, estude, mas não seja paranoico. Comece com uma hospedagem suficiente numa empresa de confiança com a Locaweb ou Uolhost, e precisando aumente o plano e etc. O contrato já vai ter clausulas de backup, segurança, e etc, e esse pessoal com certeza sabe cuidar melhor de um servidor do que você, afinal, é o trabalho deles.

e voltanduh a falar em componentes.... uma componente [.dll].. publicada na pasta "/bin"... há facilidade em poder ser baixada por qualquer pessoa(conheçendo-se o caminho desta pasta)??? e a pasta /bin... há algum nível de segurança específico a elaa que deve ser configurado no server??


Não. As pastas especiais do .NET são protegidas por padrão. Tente acessar, você deve receber um Not Found ou um Forbidden mesmo que saiba o nome do arquivo.

[]'s

#7 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 26/11/2017, 14:32

Bentyl Website Saturday Delivery buy viagra Diferencias Entre Cialis Y Viagra
Kamagra Oral Jelly 5g buy viagra Synthroid 75 Mcg No Prescription Cadianhealth
Generica Cialis viagra Efecto De Kamagra En Jovenes
Apo Cephalexin viagra prescription Can I Purchase Isotretinoin 10mg Website Cheap




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq