Securitate in Excel

mariusc

Securitate in Excel

Mesaj de mariusc » Mar Mai 11, 2010 9:44 pm

Salutare,

anexa la contract de vanzare-cumparare

In fisierul atasat penultimului meu raspuns din topicul de mai sus, am pus parola pe sheet, workbook si pe codul VBA .
Multi dintre noi stim ca exista diverse softuri concepute strict pt inlaturarea acestor parole, mai bine spus spargerea lor.

Eu nu am folosit niciodata astfel de softuri si sunt curios de unele aspecte :
- aceste softuri pot citi parolele introduse ?
- aceste softuri elimina parolele fara a fi afisate ?

Am cautat pe google...sunt o gramada de astfel de programe...urate....
A folosit cineva asa ceva? Cam in cat timp s-ar putea "sparge" o parola de 15 caractere, litere mari, mici, *&^%$#@! ... ?

Sunt chiar curios , eu am pus si pe sheet, si pe workbook, si in vba parole diferite, de 15 caractere, cu mai multe litere mari, #,$,% - parole care pe site-ul microsoft mi le-a catalogat drept strong..super strong....

De asemenea, am vazut la un moment dat un topic :Afisarea dinamica a unui meniu propriu in Excel 2003
E posibil oare prin cod VBA sa se elimine din meniu - tools - macro-security si vb editor , sau tools - protection ?
Pt vb editor ar ramne alt+f11 ... ca sa mai putem accesa si noi codul eventual :)
Va multumesc,
Ultima oară modificat Mar Iun 08, 2010 12:10 pm de către mariusc, modificat 1 dată în total.
Motiv: Mascare link

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: Securitate in Excel

Mesaj de Dr. Cloud » Mie Mai 12, 2010 9:21 am

Oricat te-ai stradui sa protejezi acel workbook, nu vrei reusi.
Acum depinde de soft: unul iti poate arata si ce parola ai avut si altul doar o sparge.
Advanced Office Password Recovery iti sparge atat parola de la VBA cat si parola de la sheet si workbook.
Oricum ai face tot se poate sparge parola.

Dr.Windows
Moderator
Moderator
Mesaje: 4570
Membru din: Vin Iul 31, 2009 7:32 am

Re: Securitate in Excel

Mesaj de Dr.Windows » Mie Mai 12, 2010 9:41 am

Salutare,

Ca idee generala - protectia in Excel este ca si "lacatul care in general este pentru oamenii cinstiti"... ;)
mariusc scrie:Eu nu am folosit niciodata astfel de softuri si sunt curios de unele aspecte :
- aceste softuri pot citi parolele introduse ?
- aceste softuri elimina parolele fara a fi afisate ?
Aceste softuri NU citesc parolele - adica nu poti afla vechea parola ci ori elimina parola ori citesc un "hash" sau daca vrei o parola "echivalenta" pe care ti-o afiseaza apoi pentru a trece de protectie... dar asta depinde si de aplicatia folosita
mariusc scrie: Cam in cat timp s-ar putea "sparge" o parola de 15 caractere, litere mari, mici, *&^%$#@! ... ?
Poti sa pui o parola cat de lunga vrei si cat de complexa, dar aplicatiile care majoritatea nu stau sa "ghiceasca" in maxim 5-10 secunde ori sterg parola ori afiseaza un sir de caractere pe care il poti folosi ca sa "intri"...
mariusc scrie: E posibil oare prin cod VBA sa se elimine din meniu - tools - macro-security si vb editor , sau tools - protection ?
Se poate... un exemplu pentru Excel 2003:

Urmatoare comanda dezactiveaza tot meniul "Tools":

Cod: Selectaţi tot

Application.CommandBars("Worksheet Menu Bar").Controls("Tools").Enabled = False
Iar urmatoarea comanda dezactiveaza numai meniul Macro din meniul Tools:

Cod: Selectaţi tot

Application.CommandBars("Worksheet Menu Bar").FindControl(ID:=30017, Recursive:=True).Enabled = False
Dar ATENTIE!: Dezactivarea ramane "permanenta"... deci trebuie sa ai grija ca la inchiderea fisierului (sau dezactivarea ferestrei fisierului tau) sa o reactivezi...

Un exemplu ai in fisierul atasat care are o functie de "management" al comenzii Macro pe care o apeleaza in diverse momente pentru activare/dezactivare.

"Modulul de management" este urmatorul:

Cod: Selectaţi tot

Sub ManageCommands(ByVal bAction As Boolean)
    Application.CommandBars("Worksheet Menu Bar").FindControl(ID:=30017, Recursive:=True).Enabled = bAction
End Sub
Dupa care in ThisWorkbook se dezactiveaza comanda la deschidere fisierului si activarea ferestrei (astfel incat daca sunt mai multe fisiere deschide numai fisierul "protejat" va avea comanda Macro dezactivata) iar la dezactivarea ferestrei va reactiva comanda Macro:

Cod: Selectaţi tot

Private Sub Workbook_Open()
    ManageCommands (False)
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    ManageCommands (False)
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
    ManageCommands (True)
End Sub
Pentru mai multe ID-uri de "command bar" ce pot fi activate dezactivate vezi aici: Disable Command bars and controls in Excel 97-2003
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

mariusc

Re: Securitate in Excel

Mesaj de mariusc » Mie Mai 12, 2010 10:14 am

Va multumesc pentru raspunsuri , lamuriri si suport !

Ideea de parolare a survenit din urmatoarele motive :
- Sheet : daca il las neparolat, userul ( talamb de felul lui ) poate introduce o linie sau o coloana si in acel moment tot codul va fi introdus in excel denaturat, drept urmare nu se mai aplica functiile SUMIF din tabelul de totaluri, si mai mult decat atat, nu se mai incadrea in print-area definita de mine
- WorkBook - pentru ascunderea a doua sheeturi ( "lista articole" si "name range" ) - daca are acces la ele, userul poate denatura rangeurile sau poate modifica preturile...
- VBA - ca sa isi bage nasul si sa strice ceva , nu din ideea de a-mi proteja munca - daca se gaseste un utilizator dibaci sa vina cu ceva in plus, e un castig...nu am nimic impotriva.


M-am lamurit cu securitatea - e la fel ca la sistemul de operare de altfel : daca nu este parolat biosul, la revedere parola pt userul de administrator...si chiar daca este biosul parolat, unul cu cunostinte hardware tot se descurca ...

In acest caz, voi pune o parola simpla : de genul " itlearning " , pentru respectarea celor trei cerinte enumerate mai sus .

Ideea este ca eu am constata urmatorul aspect : atasez print-screenuri cu erorile primite !
Atasamentul "SHEET PROTEJAT - EROARE CHECHBOX CONTROL.JPG" - aceasta eroare am primit-o in momentul in care am pus parole pe sheet, workbook si vba.
Parola era de acest gen : Aaaa1&Aaa&Aaa01 .
Am facut print-screenurile, dupa care am modificat parolele si am pus peste tot aceasta parola : itlearning
Surpriza : nu am mai primit eroare !!!
Atasez fisierul pentru a va convinge ! Parola este valabila in acest fisier atasat si pt sheet, si pt workbook si pt vba : itlearning

Aseara,acasa, am observat o alta faza tampita : pe Windows 7 Ult 32bit nu imi dadea voie sa lansez formularul deoarece era codul vba parolat.
L-am deparolat, m-a lasat sa lansez formularul, dar cand apelam contrlul checkbox "Data Curenta", nu imi recunostea functia DATE din acest rand de cod :

Cod: Selectaţi tot

'Cod pentru control CHECHBOX
Private Sub chkDataCurenta_click()
    With Sheets("Comanda_Generala")
    Dim rng1 As Range
    Set rng1 = Worksheets("Comanda_Generala").Range("DataCurenta")
    If chkDataCurenta.Value = True Then
        [b]txtDataCurenta.Value = Date[/b]
    Else
        txtDataCurenta.Value = rng1
    End If
    End With
End Sub
Pe XP nu imi face nici o figura la acel rand....
Nu inteleg urmatoarele aspecte :
- pe Windows 7 de ce nu imi recunoaste acea linie ?
- daca pun parola simpla ( doar litere mici ) imi functioneaza checkbox controalele , dar daca pun parola complexa ( Aaaa1&Aaa&Aaa01 ) , nu mai merge.....primesc eroarea din atasament si ma pune sa o trimit si la microsoft - le-am trimis ... slabe sanse ca voi primi un raspuns :)

Un alt aspect, dar pe asta il inteleg :
- toate randurile de mai sus sunt valabile pentru Excel 2003 Pro SP 3 ( aceasta versiune este folosita de 90% din companie )
- in Excel 2010 nu primesc nici un fel de eroare !
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

mariusc

Re: Securitate in Excel

Mesaj de mariusc » Mie Mai 12, 2010 11:08 am

In Event Viewer -> Application am urmatoarul log legat de eroare din 2003 :
Type : Error
Source : Microsoft Office 11
Category : None
Event ID : 1000
Description : Faulting application excel.exe, version 11.0.8320.0, stamp 4b43e9e9, faulting module unknown, version 0.0.0.0, stamp 00000000, debug? 0, fault address 0x00000000.

Technet-ul ma trimite aiurea : http://support.microsoft.com/kb/912805

El acest mesaj il vede valabil pentru Outlook 2003 folosit pe Terminal Services - ceea ce nu are nici o legatura cu fluxul meu ...

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: Securitate in Excel

Mesaj de Dr. Cloud » Mie Mai 12, 2010 11:10 am

La o prima vedere, inainte sa protejezi sheet-urile, tu ai lasa libere celulele in care se vor scrie datele pe care le completezi in formular?
Daca nu, sa stii ca te asteapta erori.

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: Securitate in Excel

Mesaj de Dr. Cloud » Mie Mai 12, 2010 11:16 am

Mda.
Ai gresit aici.
Intai selectezi tot sheet-ul si dai Locked la celule (asa cum este initial in excel).
Apoi, selectezi doar celulele in care se introduc date si le debifezi optiunea Locked ca sa poata introduce date.
Apoi, cand protejezi sheet-ul sa ai bifata optiunea Select unlocked cells.
Acum cand va introduce date in formular ar trebui sa fie ok.
Tu acum ai asa:
- ai blocat definitiv acel sheet si atunci cand completezi formularul si dai Adauga primesti eroare, pt. ca nu poate scrie in celule parolate.

mariusc

Re: Securitate in Excel

Mesaj de mariusc » Mie Mai 12, 2010 11:28 am

Salut Alexx,

O sa urmez intocmai pasii descrisi de tine.

Pentru mine este o nelamurire : eu am mai facut un fisier in care am protejat sheet-ul identic cu acesta .
Diferenta dintre acel fisier si acesta este ca in ala nu aveam checkbox-uri .

Revin cu reply asap !!!

Intre timp, am sunat la Microsoft ( am o persoana desemnata ca account manager ) . Raspunsul ( la care ma asteptam ) a fost : upgrade la 2007 sau 2010 :)


Logic, de altfel ...

mariusc

Re: Securitate in Excel

Mesaj de mariusc » Mie Mai 12, 2010 11:41 am

Alexx scrie:Mda.
Ai gresit aici.
Intai selectezi tot sheet-ul si dai Locked la celule (asa cum este initial in excel).
Apoi, selectezi doar celulele in care se introduc date si le debifezi optiunea Locked ca sa poata introduce date.
Apoi, cand protejezi sheet-ul sa ai bifata optiunea Select unlocked cells.
Acum cand va introduce date in formular ar trebui sa fie ok.
Tu acum ai asa:
- ai blocat definitiv acel sheet si atunci cand completezi formularul si dai Adauga primesti eroare, pt. ca nu poate scrie in celule parolate.
Ma tot gandesc la aceasta varianta.
Daca fac asa , permit utilizatorului sa modifice in afara formularului datele, si problema e la pretul de lista, moneda pret lista,discount, pret special si moneda pret special.
Dorinta managementului este ca el sa nu poata modifica in aceasta anexa la contract informatiile enumerate mai sus .

Si mai mult decat atat, chiar cu protectie pusa, dar cu permitere de modificare, userul da un click dreapta si clear contents...si a sters tot...
E adevarat, asta ar face si daca apasa butonul Golire Comanda ... tot asta ii face ... deci asta nu ar fi o problema ...

Ca sa existe control asupra informatiilor din contract, o varianta simpla dar costisitoare ar fi sa cumpar Office 2010 .. dar sunt multi utilizatorul, costul e mare ...

Voi pune intr-un mail toate aceste considerente si il trimit managementului !

Multumesc

Dr. Cloud
Mesaje: 3327
Membru din: Mar Oct 02, 2012 11:19 am

Re: Securitate in Excel

Mesaj de Dr. Cloud » Mie Mai 12, 2010 11:47 am

Atunci iti propun alta varianta pe care am folosit-o candva.
Faci acel workbook executabil.
Ce ai de facut:
- in modulul ThisWorkbook se pune un cod care atunci cand deschizi registrul sa cheme formularul tau, dar inainte sa il cheme specifici in cod sa ascunda fereastra excel-ului si sa ramana activa doar cea a formularului.
- apoi, exista un soft facut de un MVP care iti face acel fisier Excel intr-un executabil.
Da, poti sa scrii date in el chiar daca e executabil.
Cand userul va rula fisierul, lui ii va aparea doar userformul in care trebuie sa introduca date.

Închis

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”