Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   Παράνομη αντιγραφή βδ. (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/2611-paranomi-antigrafi-bd.html)

γιώργοςΚ 08-07-13 13:32

Παράνομη αντιγραφή βδ.
 
Παιδεια γεια σας,

επανέρχομαι και πάλιν μετά απο αρκετο καιρο και ζηταω την βοήθεια σας για ενα θέμα το οποίο απασχολεί αρκετα μέλη του φορουμ. Το θέμα και ερώτηση φυσικά ειναι αν και κατα ποσο υπάρχει τροπος έτσι ώστε να διασφαλισω την παράνομη (δίχως εξουσιοδότηση από μέρους μου) αντιγραφή της βάσης δεδομένων την οποία έχω δημιουργήσει.Και εξηγώ τι εννοώ:χρειάζομαι ένα τρόπο έτσι ώστε όταν κάποιος πάρει την βάση δεδομένων μου από τον υπολογιστή που θα εγκατασταθεί την πρώτη φορά να μην μπορεί να την εγκαταστήσει σε ένα άλλον υπολογιστή χωρίς προηγουμένως πάρει την εγκρισή μου (ίσως να πρέπει να του ζητά κάποιο κωδικό admin).

Απολογούμαι για τυχόν λάθη στην διατύπωση μου καθώτι γράφω με το δεξί χέρι στο γύψο:010:

Meteora 10-07-13 08:43

Καλημέρα

Εσύ θέλεις να στείλεις στην ανεργία τους hackers; Θα έχεις μια σχετική ασφάλεια, αν διαβάζεις τον αριθμό του σκληρού δίσκου του υπολογιστή -όπου έχει εγκατασταθεί η εφαρμογή. Στον κώδικα που ανεβάζω ο αριθμός του σκληρού δίσκου αποθηκεύεται την πρώτη φορά σε πίνακα και αυτό σημαίνει ότι κάθε επόμενη φορά που ανοίγει η εφαρμογή, πρέπει να διαβάζει τον συγκεκριμένο αριθμό.
Η ρουτίνα θα καλείται από το συμβάν "με τη φόρτωση" της πρώτης φόρμας που ανοίγει και ο πίνακας φυσικά θα είναι σε κλειδωμένη βάση (διαιρείς τη βάση και κλειδώνεις αυτή με τους πίνακες).

Κώδικας:

Public Function elegxos()
    Dim sernum As Variant, varX As Variant

    Dim Fso As New Scripting.FileSystemObject
    sernum = Fso.GetDrive("c:\").SerialNumber
   
    varX = DLookup("[snum]", "tblsernumber", "[ID9] = 1")
    If IsNull(varX) Then
        DoCmd.SetWarnings False
        DoCmd.RunSQL "INSERT INTO tblsernumber ([snum]) VALUES (" & sernum & ")"
        DoCmd.SetWarnings True
    Else
        If sernum <> varX Then
            MsgBox "Δεν έχετε την άδεια χρήσης !", vbCritical, "ΕΛΕΓΧΟΣ"
            DoCmd.Quit
        End If
    End If
End Function

Φυσικά ένα τέτοιο κλείδωμα δεν μπορεί να το σπάσει ο "ολίγον" σχετικός με την Access... Γιατί αναζητάς το κλείδωμα; Σκέπτεσαι την προστασία της δουλειά σου ή των δεδομένων;

Με εκτίμηση
Νίκος

γιώργοςΚ 10-07-13 09:40

Καλημέρα Νίκο και ευχαριστώ για την βοήθεια.

Αναζητώ το κλείδωμα φίλε και για τους δύο λόγους που αναφέρεις καθώς πρωτίστος έχω δουλέψει αρκετούς μήνες στην δημιουργία του προγράμματος, και αφετέρου επειδή έχω να κάνω με πολύ ευαίσθητες προσωπικές και ιατρικές πληροφορίες ατόμων των οποίων τα στοιχεία τουσ είναι μέσα στην βάση μου.

Αντιλαμβάνομαι πλήρως (πιστεύω) τα σχετικά με τον κώδικα που μου προτείνεις όμως δεν γνωρίζω καθόλου την άλλη διαδικασία με το σπάσιμο του προγράμματος φίλε, μήπως θα μπορούσες να μου εξηγήσεις πως γίνεται κάτι τέτοιο?

Φιλικά

Γιώργος

Meteora 10-07-13 19:45

1 Συνημμένο(α)
Καλησπέρα.

Δες στο επισυναπτόμενο τη διαδικασία διαίρεσης της βάσης...

Υστερολόγιο: Ένας "φτασμένος" στην Access, ΠΟΤΕ δεν θα αντιγράψει κώδικα! Εξάλλου κάνε το αρχείο σε *.accde οπότε ο κώδικας δεν μπορεί να τον δει κανείς. Όσο για τα δεδομένα, αυτά ποτέ δεν έχουν απόλυτη ασφάλεια...

Νίκος

γιώργοςΚ 11-07-13 00:59

Καλησπέρα Νίκο

Ευχαριστώ για τις χρήσιμες πληροφορίες, θα δοκιμάσω την διαδικασία που προτείνεις αύριο και θα επανέλθω.

Υ.Φ. προσωπικά δεν θεωρώ τον εαυτό μου φτασμένο στην access και ιδιαιτέρως στην vba. Άλλωστε αν είμουν φτασμένος δεν θα απευθυνόμουν για βοήθεια.. νάσαι καλά φίλε και σε ευχαριστώ

Meteora 11-07-13 09:20

Καλημέρα

Περιβάλλον Editor ...Tools ... References ... ενεργοποίησε το Microsoft Scripting Runtime.

Τα ξαναλέμε...

Νίκος

γιώργοςΚ 11-07-13 11:05

Καλημέρα Νίκο,

Μια δευκρίνηση απλά, όταν και εφόσον "σπάσω" το πρόγραμμα μου θα μπορώ παρόλα αυτά να κάνω αλλαγές σε αυτό?

Φιλικά,

Γιώργος

Meteora 11-07-13 16:25

Γιώργη, κρατάς Backup!
Το διαιρεμένο πρόγραμμα κάνεις ό,τι θες. Ανοίγει ανεξάρτητα η βάση με τους πίνακες και φυσικά ανοίγεις την εφαρμογή όπως πριν.
Όμως! ΠΡΟΣΟΧΗ
Αν το κομμάτι της εφαρμογής που περιέχει τον κώδικα, τα ερωτήματα, ... (δηλαδή τα πάντα πλην πινάκων), μετατρέψεις σε *.accde τότε δεν πρόκειται να προσεγγίσεις τον κώδικα ούτε εσύ, ούτε κάποιος άλλος. Άρα κρατάς αντίγραφο σε κάθε περίπτωση.

Κάνε αυτά που λέμε -έστω δοκιμαστικά και μετά θα προχωρήσουμε τη συζήτηση σε επόμενα. Αν στα πω/γράψω όλα μαζί, ενδεχομένως θα έχεις δυσκολίες διαχείρισης...

Νίκος

γιώργοςΚ 16-07-13 10:34

καλημέρα Νίκο,

"Εχω δοκιμάσει την διαδικασία οπως μου την έχεις εξηγήσει και είναι μια χαρά. Αν και δυσκολεύτηκα ομολογώ αρχικά στην κατανόηση σχετικά με τον τρόπο ¨"σπασίματος" της βάσης, στην τελικη τα βρήκα και είμαι οκ.

Νάσαι καλά φίλε και σε ευχαριστω.

Φιλικά,

Γιώργος

Dangel82 18-07-13 04:08

Καλησπέρα,

προσωπικά προτιμώ την εξής προσέγγιση:
Front End = Access (μορφή αρχείου .accde για την προστασία του κώδικα)
Back End = (Όσο κι αν την λατρεύω την Access προτιμώ πιο solid καταστάσεις όπως SQL Express η οποία δου δίνει την ασφάλεια των δεδομένων σου στο πιάτο, ταχύτητα και εύκολη χρήση της εφαρμογής σου στο δίκτυο)
Κλείδωμα = Για τα δεδομένα δεν θα αναφέρω κάτι μιας και πιστεύω πως έχει καλύφθεί με την SQL. Φυσικά αν κάποιος ανοίξει το Front End μπορεί να σβήσει να γράψει κλπ κλπ κλπ. Οπότε ένα σύστημα χρηστών είναι αυτό που χρειάζεται η εφαρμογή. Όσο για το αν κάποιος μπορεί να αντιγράψει το αρχείο του front end, ναι μπορεί να το κάνει, αλλά!:
α) αν αυτό βλέπει στην SQL ας το έχει να το χαίρεται.. (αν παίζει και το σύστημα χρηστών ακόμη καλύτερα..)
β) Προσωπικά προτιμώ να παίζω με τον αριθμό της CPU (όπως αναφέρθηκε παραπάνω αντίστοιχα για τον αριθμό του HDD) ώστε ακόμα και αν έχει την SQL database (εδώ κλαίμε τα δεδομένα μας...) και το fron end να μην μπορεί να το ανοίξει. (Μπορείς ακόμη να "φυτέψεις" τον αριθμό της cpu σου στον κώδικα και απλά να παντρέψεις το front end με το pc σου)...

Συμβουλή: Όταν με το καλό εφτασα να έχω έτοιμη την πρώτη μου εφαρμογή με SQL, Σύστημα χρηστών και front end σε Access, φρόντισα να κρατήσω ένα καθαρό αντίγραφο αυτών bakup για μετέπειτα χρήση. Όσο ωραίο κι αν ακούγεται, σίγουρα δεν είναι και ότι πιο απλό.

Φιλικά,
Αγγελος

γιώργοςΚ 18-07-13 10:52

Φίλε Άγγελε

Σε ευχαριστώ για όσα μου παραθέτεις κατα αρχάς, απλα είναι πολύ προχωρημένη προσέγγιση τα όσα μου αναφέρεις φίλε καθώς δεν είμαι άριστος γνώστης της vba, SQL etc. Θεωρώ τις γνώσεις μου σε access εποιϊκός καλές, σε vba εντελώς άσχετος και SQL καμία σχέση.
Σε ευχαριστώ πάντως φίλε για την προσέγγιση σου, θα εκτιμούσα κάθε βοήθεια από οποιοδήποτε μέλος του φόρουμ καθώς άλλωστε αυτό δικαιωλογεί και την παρουσία μου εδώ

Φιλικά
Γιώργος


Η ώρα είναι 21:11.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2