Newsgroup: it.comp.programmare
Titolo: Inibire il cambio della data su windows

Ciao Ragazzi,
devo realizzare un piccolo programmino che gestisca le presenze dei
dipendenti.
La cosa è molto semplice: il dipendente avrà un cartellino con un codice a
barre che lo identifica e, ogni volta che entra o esce dall'azienda, leggere
questo cartellino con un lettore bar code.
L'applicazione provvederà ad abbinare al codice dipendente la data e l'ora
del giorno.
L'unico problema è che se il dipendente cambia la data del sistema, i dati
vengono falsati.
Non c'è un modo per inibire al dipendente, nei vari sistemi operativi, la
possibilità di modificare la data e l'ora sulla barra delle applicazioni?
Grazie in anticipo per l'aiuto
  Gg



sui sistemi operativi multiutente basta che associ al dipendente un utente
con privilegi bassi.

 con privilegi bassi.
ok. ora faccio la prova e ti faccio sapere.
Ciò significa che con win98 non funziona, vero?

 Ciò significa che con win98 non funziona, vero?
La cosa e' molto probabile... Win98 e' un giocattolo,
meglio non usarlo per niente di piu' critico di un
Word processor.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Dipende dal sistema operativo.
Se usi Windows NT e derivati è possibile impedire all'utente con cui 
"girerà" il tuo programma di cambiare la data/ora del sistema.
Anche su sistemi *nix questa operazione può essere consentita solo ad 
alcuni utenti.
Su Windows 98/95/Me e simili puoi solo fare in modo che l'ora sia 
tenuta sincronizzata con quella di un server e rifasarla forzatamente a 
intervalli regolari da dentro l'applicazione che legge i barcode.
Ovviamente non si tratta di una protezione sicura al 100%.
Su sistemi operativi embedded (XP embedded o Windows CE) puoi rimuovere 
completamente la parte di interfaccia utente che consente di modificare 
l'orario (e magari aggiungere comunque la possibilità di rifasarlo con 
quello di un server).
Anche nel caso dei sistemi operativi più sicuri, comunque, se il PC non 
è configurato correttamente, può essere possibile bypassare la 
protezione spegnendo il PC e modificando la data e ora nelle 
impostazioni del bios (che potrà essere protetto da password) o 
partendo con un floppy DOS.
L'unica verifica la puoi fare numerando progressivamente o 
"appendendo" in un file le letture e segnalando un'anomalia se ti trovi 
l'ultima lettura con data e ora antecedente a quella della lettura 
precedente (c'è da gestire il passaggio tra ora legale e ora solare, ma 
generalmente non avviene in orari lavorativi).
-- 
Valter Minute
vmi...@inwind.it
 (the reply address of this message is invalid)

 Ciò significa che con win98 non funziona, vero?
no mi spiace con windows98 non funziona.

Potresti creare un codice così:
1) registra ora e data in A
2)esegui un calcolo fittizio che duri pochi secondi
3) registra data e ora correnti in B
4) se B<A o la differenza tra A e B è troppo grande allora:
   manda una mail o un altro avviso al gestore che riporta A, B, il codice
degli ultimi lavoratori e altri dati di log che possano aiutare a capire se
si tratta di un falso allarme(nel qual caso si invia il segnale di sblocco)
o no e chi ha tentato di barare, poi
blocca il computer finchè non ricevi via rete la password di sblocco.
Se invece non c'è nessuna anomalia torna al punto 1
Questo codice deve essere inserito all'interno del programma di controllo o
in un programma a parte che però sia continuamente controllato da quello di
controllo (per esempio cambiando continuamente un variabile di sistema
secondo un sistema matematico segreto e controllando se il programma gemello
la modifica nello stesso modo con regolarità).
Potresti anche fare in modo che tutto funzioni in DOS, eliminando la
possibilità di avviare Windows e quindi modificare l'ora.
Oppure puoi fare in modo che il programma di controllo, una volta
avviato, termini explorer.exe, systray.exe (ovviamente non dovrà fare uso di
grafica a
finestre).
In tutti questi casi devi proteggere il BIOS con una password decente e
anche bloccare o sorvegliare il case in modo che un utente non possa aprirlo
e azzerare la memoria CMOS a mano togliendo la password per poi modificare
l'ora.