domingo, 14 de março de 2010

CDO NA TEORIA (ENVIO DE EMAIL)

CDO (Collaboration Data Objects) é umatecnologia desenvolvida pela microsoft para simplifica a criação de mensagens através de programação.



Instanciando o objeto:

Set Objemail = CreateObject("CDO.Message")Propriedades do objeto: Propriedade Descrição Exemplo de utilização

From Email do remetente Objemail.From = "email@site.xxx.xx"
To Email destino
Objemail.To = "emaildestino@site.yyy.yy"

TextBody Corpo da mensagem no formato texto Objemail.TextBody = "Este é um corpo de mensagem em texto"

Bcc Envia uma cópia da mensagem para o destinatário oculto. Objemail.Bcc = "emailcopiaoculta@site.yyy.yy"
Send Envia a mensagem. é o comando final após ele a mensagem é enviada
Objemail.Send

SubjectAssunto da mensagem Exemplo de utilização: Ob From :- Email do Remetente da mensagemTo :- Email do destinatário da mensagemTextBody :- Corpo da mensagem, no formato texto.

Virus em paginas de internet, Frames inseridos sem autorização

Existe um tipo de virus que após instalado em sua maquina procura por todos os arquivos de internet (.html .php .asp) existentes na maquina e efetua esta alteração, a alteração e tipos de arquivos afetados varia de acordo com o tipo de virus.

o usuario geralmente não percebe a atuação deste virus uma vez que na maquina local ele simplesmente procura por arquivos de internet e faz esta alteração

quando o usuario envia arquivos para seu site então estes arquivos são enviados com este codigo, então os visitantes do site acabam por expor-se a atuação do virus tambem caso não possuam um antivirus instalado na maquina.

para solucionar:

- baixe um bom antivirus e limpe por completo a sua maquina,
- entre na pasta aonde estão os arquivos do site e edite um a um procurando por este codigo e reparando os arquivos
- envie os arquivos novamente para o site

nota: somente remover o virus do computador geralmente nao repara os arquivos de internet ja infectados, tera de fazer esta desinfecção arquivo por arquivo.
_________________


para remover o virus tente :

http://www.symantec.com/security_response/writeup.jsp?docid=2007-060812-4603-99&tabid=3

SENHAS - PAINEL, FTP, EMAIL, ETC

Lembre-se as senhas são as chaves de acesso a seu site, nunca utilize-se de senhas fáceis de se descobrir, como palavras que existem em dicionários, seguencia de numeros, etc.

utilize-se de senhas com numeros e caracteres misturados, os caracteres coloque alguns em maiusculo outros em minusculo, a utilização de caractares como @#%&! tambem é indicado para dificultar ainda mais, uma possivel descoberta de senhas.

lembre-se se sua senha for frágil e alguem consseguir acessar alguma area em sua hospedagem, seja painel, seja site por ftp, senha email, as conssequencias serão desastrosas e imprevisiveis, portanto nunca relaxe qdo o assunto é segurança...

caso não esteja alterando seu site, aconselhamos que delete os usuarios de ftp, fechando assim uma porta de entrada

Segurança em Emails

Formularios que sao gravados em banco de dados ou enviam emails, são alvos muito muito comuns de ataques, pois a grande maioria não analisa os posts, e simplismente saem enviando emails ou gravando dados em uma base de dados. vejamos a seguir alguns exemplos.

uma situação muito comum, um formulario de fale conosco, solicitando nome, email e menssagem, geralmente este formulario é enviado ao administrador do site e uma copia é enviada a pessoa que preencheu o formulario, situação corriqueira e inocente não acha???

pois bem digamos que neste campo de email, um usuario mal itenssionado coloque mais de 2000 emails, e no campo menssagem coloque uma propaganda e simule um post em seu script que manda o email, pronto, seu site agora esta enviando emails de propagandas alheias, pode ser listado como um site de spam, e ainda o invasor esta usando recursos de seu site e servidor para mandar emails pra todo mundo, pior ainda, dificilmente poderá ser rastreado...

portanto o mais basico de tudo antes de processar um post, é testar se ele esta realmente vindo do servidor, neste forum existe um exemplo em php que faz isto na seção formmail, além desta técnica tambem podem ser usados validadores de imagens com senhas antes de se processar um formulario.

Outra situação comum é a injeção de dados falsos em banco de dados, neste caso digamos que vc tenha um campo em seu site dizendo digite aqui seu email para receber nossa newsletter.

pois bem um invasor pode injetar 1 milhao de emails atraves deste campo, todos falsos, lotando seu banco de dados e ate mesmo podendo causar a parada de seu site ou a parada do mysql em casos mais extremos, e lembre-se em qquer situação vc responderá pelo estrago pois o erro de segurança está em seu script.

neste caso tambem vale checar se o post esta vindo realmente de seu site, altamente recomendado fazer a checagem por imagens con senhas, e alem disto antes de realmente incluir o email em sua newsletter, ainda enviar um email solicitando a confirmação da inscrição ao email informado.

Digamos que sua newsletter possua conteudo **SENSURADO**, algum esperto (e a net é cheia deles), pode cadastrar o email de um padre, e ai ja viu o tamanho do estrago (pode até parecer, mas realmente não será nada engraçado), portanto enviar sempre um email solitando a confirmação da inscrição na newsletter, e descrever o conteudo da mesma.

Este procedimento tambem ira evitar o cadastramento de e-mails inválidos em sua news letter.

Segurança em Banco de Dados Acess em Servidores Web

a estrutura de pastas para um dominio hospedado no windows é a seguinte:

- levaremos em conta o site HOSTSAGRADO.COM

c:domainshostsagrado.com

diretorio raiz

c:domainshostsagrado.comDB

diretório reservado a banco de dados

c:domainshostsagrado.comSECURE

diretório reservado a gravação configuração de pastas protegidas por senha

c:domainshostsagrado.comLOG

dirtetório com os logs de acesso ao site

c:domainshostsagrado.comwwwroot

diretório com o web site em si - pasta publica

c:domainshostsagrado.comSSL

diretório com o web SSL - pasta publica


os arquivos .mdb somente estarão seguros se estiverem dentro da pasta DB, porem não é raro encontrarmos estes arquivos em subpastas dentro da wwwroot, lembramos que os arquivos .MDB são como quaisquer outros arquivos e que portanto podem ser descarregados como arquivos comuns.

pois bem de posse desta informação, então digamos que enviassemos um arquivo .mdb para a pasta database dentro da pasta wwwroot teriamos:

c:domainshostsagrado.comwwwrootdatabaseexemplo.mdb

qualquer pessoa poderia descarregar esta base de dados, simplesmente digitando a url:

http://www.hostsagrado.com/database/exemplo.mdb

E a partir dai abrir o arquivo e ver conteudo que la esta, e o pior esta base de dados geralmente possui os usuarios e senhas para acesso ao sistema, pode ainda possuir dados cadastrais de clientes, dados de cartões de credito, etc...

Ou seja a partir de um simples descuido um invasor ja tem acesso completo ao seu site, pode por exemplo, acessar a sua area administrativa, e através dela cadastrar um produto, so que ao inves de enviar uma imagem, na realidade envia um programa que sera capaz de desfigurar seu site, enviar emails, etc, etc, etc...

fora o roubo de dados dos clientes, e pior ainda se estes dados tiverem informações de cartões de credito....

bom ja viu o tamanho do prejuizo causado por um simples e comum descuido, para resolver esta questão basta colocar todos os arquivos .mdb na pasta db, entao o caminho correto do nosso exemplo seria:

c:domainshostsagrado.comDBexemplo.mdb

como a pasta db não é publica, não há como acessar-la via http://www...., porem esta acessivel via script.

A grande maioria dos scripts em asp, possuem um rotina de configuração para que seja informado o caminho do
banco de dados, geralmente neste arquivo na linha de conexão ao banco de dados é comum encontrar o comando
server.MapPath(), que descobre automaticamente o diretorio corrente, este comando não ira funcionar, substitua-o pelo caminho de seu site, veja a seguir um exemplo de configuração da virtua store, uma loja muito comum em ASP:

linha original e errada:

StringdeConexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("database/virtuastore.mdb")

Devera ser sustituida por:

pasta_dados_protegido="C:domainshostsagrado.comdbvirtuastore.mdb"
StringdeConexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&pasta_dados_protegido&";"


BOM FINALIZANDO, SEJA QUAL FOR SUA APLICAÇÃO NUNCA COLOQUE O BANCO DE DADOS EM AREA PUBLICA,, UTILIZE SEMPRE A PASTA DB, CASO NÃO TENHA CONHECIMENTO EM ASP E PORTANTO NÃO SABE COMO ADAPTAR O SCRIPT, ENVIE UM POST PARA O FORUM, OU PROCURE FORUMS ESPECIALIZADOS, NUNCA CORRO RISCOS ESMO QUE SEJA APENAS PARA TESTAR UMA ROTINA, OU SEJA NÃO COLOQUE SEUS SITES EM RISCO...