Dicas sobre proteçã...
 
Notifications
Clear all

Dicas sobre proteção de códigos/cenários e banco dados!

14 Posts
4 Usuários
0 Reactions
2,064 Visualizações
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Olá pessoal,

É com prazer e sentimento de realização que, com a ajuda de vocês, Planilhando.com, que eu finalizei o meu projeto de despesas pessoais. Vejam o vídeo:

https://www.facebook.com/photo.php?v=70 ... eo_comment

A minha ideia é de, antes de distribuí-lo na rede, protegê-lo, ao máximo, contra todo os tipos de edições, sejam elas no cenário, banco de dados, código e outras...

Caso possuirem algumas dicas, por favor, compartilhem aqui.

Abra~o.

 
Postado : 12/08/2014 4:55 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Falei que eu tinha dicas, e tenho. Tb falei que nunca será 100% seguro, e isso é fato.
Seguinte:
1) Proteger planilhas com senha: ótima pedida para não ter seu conteúdo alterado ou suas fórmulas tornando-se visíveis.

2) Proteger pasta de trabalho com senha: Impede que o usuário torna planilhas visíveis, impede a inclusão ou exclusão de planilhas. Enfim, protege a estrutura geral da pasta de trabalho.

3) Proteger código: Usa-se senha. Pode-se impedir visualização, ou permitir visualização mas impedir edição.

4) (NOVO) Há a senha do arquivo. Você pode optar ao salvar um arquivo, por encriptá-lo. Há duas senhas de criptografia. Uma para permitir somente a leitura sem edição, e outra para permitir também a edição. Se as duas forem definidas, ambas são solicitadas ao tentar abrir a pasta de trabalho.

Todas essas senhas podem ser quebradas facilmente se o indivíduo tiver uma licença do programa AOPR (Advanced Office Password Recovery), da http://www.elcomsoft.com/aopr.html. Eu tenho essa licença e cobro pelo uso de terceiros dela.

5) Há códigos na internet que quebram senha de planilha (no item 1). Mas não funcionam se a planilha tiver sido protegida com Excel 2013, o mais poderoso nesse sentido até hoje. Não sei dizer sobre as senhas 2, 3 e 4 e Office 2013 vs AOPR. Não fiz testes. Mas o AOPR se mostrou muito eficiente em mais de 90% dos casos de todas as senhas acima. No caso da senha 3, a do VBA, ele não mostra a senha, mas consegue alterar ou exclui-la.

6) Um outro nível de "proteção" que eu coloco em meus arquivos (não muitos), é o tão famigerado e ruim recurso de "Compartilhar a Pasta de Trabalho".
Uma consequência deste recurso é tornar a macro invisível para qualquer usuário. O que é bom, quando se quer adicionar uma nova camada de proteção. Pessoas menos preparadas não entenderão pq, mesmo quebrando a senha usando alguns dos programas disponívels na internet, a código continua não visível.

7) O item 6 é facilmente contornável uma vez que o usuário coloca no google a mensagem que ele ve, que diz que o código não é visível.

Essas são todas as formas de proteção que eu lembro agora que o Excel oferece.

Tem como proteger mais? Talvez. Eu não conheço outras formas, mas sinceramente espero que existam.

p.s.1: pasta de trabalho é o nome oficial que se dá a "arquivo do Excel", ou , Workbook.
p.s.2: planilha é o nome oficial que se dá às "abas". Aba na verdade é uma parte da planilha, a parte que mostra o nome, e que de fato é a guia para torná-la visível. Ou seja, podemos dizer que "aba" e "guia" são a mesma coisa. "Planilha" é o que aparece quando você clica na "aba", ou na "guia".

É isso que eu tinha pra dizer sobre esse assunto. 8-)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/08/2014 12:13 am
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Fernando,

As suas explicações, bastante didáticas por sinal, refletem a essência do site Planilhando, pois aguçam/desenvolve o conhecimento dos usuários deste site.

Boas dicas as suas!

Agradecido.

 
Postado : 13/08/2014 5:22 am
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Fernando,

O código abaixo bloqueia todas as planilhas através de um loop, sem ao menos solicitar uma senha, ou seja, caso o usuário clicar em Revisão > Desproteger Planilha, ele obterá êxito. Mas ai que esta o secreto, pois, se compartilharmos a planilha, o Excel não o permitirá a clicar em Desproteger Planilha. :P

É o seguinte, eu quero fazer, se possível, um tratamento de erro global, o qual, em qualquer erro, ele execute o código abaixo. É possível?

'Função que protege todas as planilhas de um arquivo
Sub lsProtegerTodasAsPlanilhas()
'Declara as variáveis necessárias
Dim lPass As String
Dim lQtdePlan As Integer
Dim lPlanAtual As Integer

'Solicita a senha
'O método InputBox é utilizado para solicitar um valor através de um formulário

'Inicia as variáveis
'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo
lQtdePlan = Worksheets.Count
lPlanAtual = 1

'Loop pelas planilhas
'A função While realiza um loop de código enquanto não passar por todas as planilhas contadas
While lPlanAtual <= lQtdePlan
'O método Worksheets(lPlanAtual).Activate ativa a planilha conforme o índice atual 1, 2, 3...
Worksheets(lPlanAtual).Activate

'O método .Protect proteje a planilha passando os parâmetros para proteger
'objetos de desenho, conteúdo, cenários e passando o password digitado
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=lPass

'Muda o índice para passar para a próxima planilha
lPlanAtual = lPlanAtual + 1
Wend

End Sub

'Função que desprotege todas as planilhas de um arquivo
Sub lsDesprotegerTodasAsPlanilhas()
'Declara as variáveis necessárias
Dim lPass As String
Dim lQtdePlan As Integer
Dim lPlanAtual As Integer

'Solicita a senha
'O método InputBox é utilizado para solicitar um valor através de um formulário
lPass = InputBox("Desproteger todas as planilhas:", "Senha", ActName)

'Inicia as variáveis
'O método Worksheets.Count passa a quantidade de planilhas existentes no arquivo
lQtdePlan = Worksheets.Count
lPlanAtual = 1

'Loop pelas planilhas
'A função While realiza um loop de código enquanto não passar por todas as planilhas contadas
While lPlanAtual <= lQtdePlan
'O método Worksheets(lPlanAtual).Activate ativa a planilha conforme o índice atual 1, 2, 3...
Worksheets(lPlanAtual).Activate

'O método .UnProtect desprotege a planilha
ActiveSheet.Unprotect Password:=lPass

'Muda o índice para passar para a próxima planilha
lPlanAtual = lPlanAtual + 1
Wend

End Sub

 
Postado : 13/08/2014 5:53 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Lorenzon,

Se o usuário utilizar o Calc da suíte BrOffice da Oracle (que adquiriu da Sun Microsystems) ele conseguirá ver todo o seu código e poderá desproteger seu trabalho.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 13/08/2014 6:42 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu tentei usar o BROffice uma vez, com esse objetivo, e não consegui.
Então eu "decidi" que isso é lenda urbana e larguei o assunto.

Porém, queria saber se todo mundo que diz isso ainda faz isso, ou sabe disso do passado mas não testou recentemente.
E digo mais, pode ser que eu tenha feito algo errado, mas é fato que não consegui abrir um arquivo protegido por senha do Excel, no BROffice...

E digo mais, faltou um detalhe da proteção no meu post lá em cima... vou atualizar.... é sobre senha de pasta de trabalho para permitir visualizar como somente leitura, e a outra senha que permite visualizar e editar....

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/08/2014 9:51 am
(@edcronos)
Posts: 1006
Noble Member
 

Fernando eu tive uma planilha que corrompeu e o office não abria de jeito nenhum nem em modo de proteção para salvar os dados
e o libre office abriu o arquivo corretamente e com os dados e formulas e as macro intactas e nem precisei da senha

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 13/08/2014 10:07 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu indico usar o Office 2013 que tem recursos de reparação de arquivos muito mais avançados e melhores do que nos "Excéis" anteriores.
Mas não duvido que funcione não, só que eu quando tentei, não consegui.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/08/2014 10:32 pm
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Fernando,

Utilizando a opção de compartilhar a planilha, o meu projeto surpreendeu-me ao apresentar o erro abaixo (vide imagem). Esse erro só aparece quando eu clico no botão que executa o gráfico. Veja o código que eu utilizo para execução do gráfico:

Private Sub UserForm_Initialize()

ChartNum = 1
UpdateChart

End Sub

Private Sub UpdateChart()
Set CurrentChart = Sheets("fluxo").ChartObjects(ChartNum).Chart
CurrentChart.Parent.Width = 700
CurrentChart.Parent.Height = 340

' Save chart as GIF

Fname = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
CurrentChart.Export Filename:=Fname, FilterName:="GIF"
' Show the chart

Image1.Picture = LoadPicture(Fname)

End Sub

O que você (s) indica (am) a fazer?

 
Postado : 01/09/2014 5:01 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Verifique se a planilha está protegida no momento que vc tenta mudar a largura e a altura do gráfico.
Se a planilha estiver protegida, o código não conseguirá alterar as dimensões do gráfico.

FF

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/09/2014 8:02 am
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

Sim. Ela está, pois protegi a pasta de trabalho, certo?

Neste caso, antes de executar o código do gráfico, creio que seja necessário desprotege-la e, ao fechá-lo, protege-la novamente.

Isso resolverá?

 
Postado : 01/09/2014 1:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite Lorenzon

Você pode inserir linhas de código no inicio e no final da macro para desbloquear e depois a bloquear a planilha.

No inicio use:

'comando que desprotege a planilha, no caso a senha é TESTE
ActiveSheet.Unprotect "TESTE"

No final use:

'comando que volta a proteger a planilha, no caso a senha é TESTE
ActiveSheet.Protect "TESTE"

Não se esqueça de substituir TESTE pela senha da tua planilha.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 01/09/2014 7:24 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Você está confundindo tudo.
Proteção de planilha é uma coisa, proteção de pasta de trabalho é outra. uma não substitui a outra e vice-versa.

Se vc protege a planilha, tudo dentro dela passa a ser bloqueado, a não ser que vc escolha exceções.
O gráfico está na planilha, portanto, se proteger a planilha, ele passa a ser ineditável, inalterável e não dimensionável.
Para alterar características dele, terá q desproteger a planilha, alterar o que quer, e depois reproteger.

Quanto a proteção de pasta de trabalho, aí é mais acima, é outro nível de proteção. Você protege a estrutura do arquivo. A pessoa não poderá inserir ou excluir planilhas, não poderá mudar a visibilidade delas ou cor de suas abas, enfim, não poderá alterar propriedades em nível de pasta de trabalho. Proteger pasta de trabalho não protege o conteúdo das planilhas, esse só é protegido por proteger planilha.

FF

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/09/2014 9:33 am
Lorenzon
(@lorenzon)
Posts: 355
Reputable Member
Topic starter
 

ok Fernando, mas o que tenho a fazer para compartilhar a planilha e fazer com que ela apresente tal gráfico?

 
Postado : 02/09/2014 11:09 am