Sichere Textabfrage im Internet
Tag!
Also, nachdem ich also jetzt weiß, wie man eine fernümpftige aktivierung mit
einem Lizenzschlüssel hinbekommt, möchte ich jetzt noch eine Text-Abfrage
im Internet machen, also z.B.:
Nutzer gibt richtigen Lizenzschlüssel "2374973947" ein,
dann soll das Programm ins Internet gehen, auf meine Seite,
welche dann mit htaccess geschützt ist und sich dort anmelden.
Wenn es dort angemeldet ist, soll es überprüfen, ob der Schlüssel dort
registriert ist, wenn nicht, dann wird eine Fehlermeldung gezeigt.
Ist das zu realisieren?
Geht es auch einfacher?
Danke schonmal im Vorraus!
Gruß
Alexss95
Also, nachdem ich also jetzt weiß, wie man eine fernümpftige aktivierung mit
einem Lizenzschlüssel hinbekommt, möchte ich jetzt noch eine Text-Abfrage
im Internet machen, also z.B.:
Nutzer gibt richtigen Lizenzschlüssel "2374973947" ein,
dann soll das Programm ins Internet gehen, auf meine Seite,
welche dann mit htaccess geschützt ist und sich dort anmelden.
Wenn es dort angemeldet ist, soll es überprüfen, ob der Schlüssel dort
registriert ist, wenn nicht, dann wird eine Fehlermeldung gezeigt.
Ist das zu realisieren?
Geht es auch einfacher?
Danke schonmal im Vorraus!
Gruß
Alexss95
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 127070
Url: https://administrator.de/contentid/127070
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
10 Kommentare
Neuester Kommentar
moin,
Ich würde das Pferd wiefolgt aufziehen:
1. Programm Installation
2. Am Ende der Installation wird eine Mail an dich gesendet, mit Info's zu:
- Key 2)
- Benutzerangaben 2)
- Timestamp 1)
- generierten Hardwarestamp 3)
- Mail 2)
- Randsysteminfo's 1)
1) rein zu statistischen Zwecken
2) zum validieren benutzen
3) damit kannst du feststellen ob die Installation auf dem gleichen Rechner erfolgt oder auf unterschiedlichen
3. Benutzer bekommt eine Antwort auf seine Mail mit nem "Aktivierungskey"
4. Benutzer gibt den Aktivierungskey im Programm ein und dann wird der Status des
Programms auf Aktiviert gesetzt, sowohl in der Software als auch in der DB.
Bei jedem Update kannst du dann abgleichen ob die Aktivierungsranddaten mit denen der DB übereinstimmen. Stimmt eine Angabe nicht wird der Status im Programm wieder zurückgesetzt bzw. kommt alle 5min eine Meldung oder was weiß ich. xD Deiner Phantasie sind keine Grenzen gesetzt.
gruß
Ich würde das Pferd wiefolgt aufziehen:
1. Programm Installation
2. Am Ende der Installation wird eine Mail an dich gesendet, mit Info's zu:
- Key 2)
- Benutzerangaben 2)
- Timestamp 1)
- generierten Hardwarestamp 3)
- Mail 2)
- Randsysteminfo's 1)
1) rein zu statistischen Zwecken
2) zum validieren benutzen
3) damit kannst du feststellen ob die Installation auf dem gleichen Rechner erfolgt oder auf unterschiedlichen
3. Benutzer bekommt eine Antwort auf seine Mail mit nem "Aktivierungskey"
4. Benutzer gibt den Aktivierungskey im Programm ein und dann wird der Status des
Programms auf Aktiviert gesetzt, sowohl in der Software als auch in der DB.
Bei jedem Update kannst du dann abgleichen ob die Aktivierungsranddaten mit denen der DB übereinstimmen. Stimmt eine Angabe nicht wird der Status im Programm wieder zurückgesetzt bzw. kommt alle 5min eine Meldung oder was weiß ich. xD Deiner Phantasie sind keine Grenzen gesetzt.
gruß
Das ist nicht die Bohne kompliziert, wenn du genau das machst so wie ich das beschrieben habe. Was musst du nun tun?:
- Suche dir ne Anleitung wie man z.B. HardwareIDs(Mainboard/CPU/HDD usw.) ermittelt mit VB
- Suche dir ne Anleitung wie man die Uhrzeit abfragt
- Suche dir ne Anleitung wie man ne Mail versenden kann
Wie du einen Key generierst weißt du mittlerweile, also:
1. generiere einen Key
2. bastel in dein Programm die Abfragen rein, und lass ne Mail versenden zum schluss
3. Bastel deinen ersten Keygenerator etwas um um einen Aktivierungskey zu erstellen(z.B. Input: Kundenmail + benutzen Key + Name --> Output: Aktivierungskey)
4. schicke diesen Aktivierungskey dem Empfänger
5. baue in deinem Programm eine Routine ein die den Status auf "aktiviert" setzt und die Benutzerdaten im Infobereich einträgt
Diese Vorgehensweise hat den Vorteil, das nur dann eine Aktivierung auf diesem Wege möglich ist, wenn die von dir vorgegebenen Randbedingungen erfüllt werden.
Möglichkeit 2:
1. Kunde fordert Key an mit (Kundenmail + benutzen Key + Name)
2. Du generierst aus diesen Sachen einen Key und sendest ihm den + Login für deine Webseite.
3. Dann trägst du die Randbedingungen + Key in deine DB.
4. Kunde installiert und am Ende gehts auf deine Webseite und du vergleichst die Eingegebenen Sachen mit deinen Eintragungen in der DB.
Sollte da was differieren --> *kawumm* "Key ungültig"
- Suche dir ne Anleitung wie man z.B. HardwareIDs(Mainboard/CPU/HDD usw.) ermittelt mit VB
- Suche dir ne Anleitung wie man die Uhrzeit abfragt
- Suche dir ne Anleitung wie man ne Mail versenden kann
Wie du einen Key generierst weißt du mittlerweile, also:
1. generiere einen Key
2. bastel in dein Programm die Abfragen rein, und lass ne Mail versenden zum schluss
3. Bastel deinen ersten Keygenerator etwas um um einen Aktivierungskey zu erstellen(z.B. Input: Kundenmail + benutzen Key + Name --> Output: Aktivierungskey)
4. schicke diesen Aktivierungskey dem Empfänger
5. baue in deinem Programm eine Routine ein die den Status auf "aktiviert" setzt und die Benutzerdaten im Infobereich einträgt
Diese Vorgehensweise hat den Vorteil, das nur dann eine Aktivierung auf diesem Wege möglich ist, wenn die von dir vorgegebenen Randbedingungen erfüllt werden.
Möglichkeit 2:
1. Kunde fordert Key an mit (Kundenmail + benutzen Key + Name)
2. Du generierst aus diesen Sachen einen Key und sendest ihm den + Login für deine Webseite.
3. Dann trägst du die Randbedingungen + Key in deine DB.
4. Kunde installiert und am Ende gehts auf deine Webseite und du vergleichst die Eingegebenen Sachen mit deinen Eintragungen in der DB.
Sollte da was differieren --> *kawumm* "Key ungültig"
Im Grunde ist jeder Validierungsprozess umgehbar, aber je ausgefeilter er wird und je mehr Abläufe von unterschiedlichen Stellen notwendig sind, desto schwerer hats die Gegenseite. ^^
Ablauf für deine DB:
1. Kunde bekommt Proggy
2. Kunde bekommt Key (den kann man übrigens noch als Alleinstellungskriterium in die Generierung des Aktivationkey mit einbeziehen)
3. Kunde trägt Key ein und am Ende wird ne Mail versendet mit (den Randdaten die bei der Installation eingegeben worden sind + Key + Ids + Stamps usw.)
4. Daraus wird nen Aktivierungskey generiert
5. Kunde trägt den Key ein und bei Erfolg werden die entsprechenden Schalter im Programm gesetzt
6. nun kannst du noch ein eMail schicken "Aktivierung erfolgreich"
7. gleiche alle zusammengetragenen Daten zusammen und vergleiche, treten irgendwo ungereihmtheiten auf --> *kawumm* "Installation Ungültig" oder was auch immer
Ablauf für deine DB:
1. Kunde bekommt Proggy
2. Kunde bekommt Key (den kann man übrigens noch als Alleinstellungskriterium in die Generierung des Aktivationkey mit einbeziehen)
3. Kunde trägt Key ein und am Ende wird ne Mail versendet mit (den Randdaten die bei der Installation eingegeben worden sind + Key + Ids + Stamps usw.)
4. Daraus wird nen Aktivierungskey generiert
5. Kunde trägt den Key ein und bei Erfolg werden die entsprechenden Schalter im Programm gesetzt
6. nun kannst du noch ein eMail schicken "Aktivierung erfolgreich"
7. gleiche alle zusammengetragenen Daten zusammen und vergleiche, treten irgendwo ungereihmtheiten auf --> *kawumm* "Installation Ungültig" oder was auch immer
Moin,
bei Punkt 3 schlägt z.B. McAfee zu und verbietet deinem Programm das direkte Versenden von Mails - päng!
Bei Punkt 3 schlägt der Datenschutz zu - da du die gesammelten Sys-Infos zur Auswertung, zur Lizenzkontrolle usw. verwendest (keine Zweckbindung!) -> päng!
Warum auch so kompliziert: Du übergibst einer PHP-Seite auf deinem Server den Key den der User zur Aktivierung eingegeben hat. Gleichzeitig liegt auf deinem Server in der DB eine Liste mit den gültigen Schlüsseln (oder ein Programm zur Errechnung der Schlüssel). Ist der Schlüssel gültig so gibt deine Seite einfach nen "Gültig" zurück - und deine DB speichert das Aktivierungsdatum. Liegt der Zeitraum zwischen 2 Aktivierungen unter Zeitraum X gibt es ein NOK zurück...
In deinem Programm brauchst du jetzt nurnoch dafür sorgen das bei der Aktivierung z.B. das OK mit dem Hash-Wert der Netzwerkkarten-MAC verschlüsselt wird und speicherst den Hash in ner Datei ab. Bei jedem Start machst du jetzt einfach eine Prüfung ob der Schlüssel noch mit dem in der Datei übereinstimmt.
Vorteil dabei: Es verlassen NIE persönliche Daten den Rechner des Anwenders...
bei Punkt 3 schlägt z.B. McAfee zu und verbietet deinem Programm das direkte Versenden von Mails - päng!
Bei Punkt 3 schlägt der Datenschutz zu - da du die gesammelten Sys-Infos zur Auswertung, zur Lizenzkontrolle usw. verwendest (keine Zweckbindung!) -> päng!
Warum auch so kompliziert: Du übergibst einer PHP-Seite auf deinem Server den Key den der User zur Aktivierung eingegeben hat. Gleichzeitig liegt auf deinem Server in der DB eine Liste mit den gültigen Schlüsseln (oder ein Programm zur Errechnung der Schlüssel). Ist der Schlüssel gültig so gibt deine Seite einfach nen "Gültig" zurück - und deine DB speichert das Aktivierungsdatum. Liegt der Zeitraum zwischen 2 Aktivierungen unter Zeitraum X gibt es ein NOK zurück...
In deinem Programm brauchst du jetzt nurnoch dafür sorgen das bei der Aktivierung z.B. das OK mit dem Hash-Wert der Netzwerkkarten-MAC verschlüsselt wird und speicherst den Hash in ner Datei ab. Bei jedem Start machst du jetzt einfach eine Prüfung ob der Schlüssel noch mit dem in der Datei übereinstimmt.
Vorteil dabei: Es verlassen NIE persönliche Daten den Rechner des Anwenders...
Zitat von @maretz:
bei Punkt 3 schlägt z.B. McAfee zu und verbietet deinem Programm
das direkte Versenden von Mails - päng!
bei Punkt 3 schlägt z.B. McAfee zu und verbietet deinem Programm
das direkte Versenden von Mails - päng!
Das Programm versendet die Mail natürlich nicht selber sondern öffnet brav Outlook oder einen anderen Mailclient + Vorlage deiner Wahl und du darfst Sie versenden.
Zitat von @maretz:
Bei Punkt 3 schlägt der Datenschutz zu - da du die gesammelten
Sys-Infos zur Auswertung, zur Lizenzkontrolle usw. verwendest (keine
Zweckbindung!) -> päng!
Bei Punkt 3 schlägt der Datenschutz zu - da du die gesammelten
Sys-Infos zur Auswertung, zur Lizenzkontrolle usw. verwendest (keine
Zweckbindung!) -> päng!
Was hier nicht zur debatte stand, aber um dem genüge zu tun muss der Kunde natürlich einen "bestimmten" Haken setzen wo er damit einverstanden ist .
Das ist ein echter Vorteil =). Aber aus der Sicht des Entwicklers sind solche Datensammlungen immer nett.
hmmm wie schon in dem anderen Thread, meine VB Zeit ist schon sehr lange her .
Code Snippet 1
und weitergegoogelt.
Stichwort: MAPI
Code Snippet 2
Ein Formular für die Eingabe der Daten -> OL öffnen -> und versenden =)
Nur am Rande:
Um es einfacher zugestalten wäre die eine oder andere Zeile Quelltext von deiner seite sinnvoll.
Code Snippet 1
'Kontrolle ob Outlook schon offen, sonst mit Profil "#OFFLINE#" öffnen.
Dim oApp As Outlook.Application
Set oApp = GetObject(, "Outlook.Application")
If Err.Number = 0 Then ' Outlook schon offen
MsgBox "OL schon offen!"
Exit Sub
Else ' Outlook noch zu öffnen
MsgBox "Öffne OL!"
Dim oSess As Outlook.NameSpace
Dim oFld As Outlook.MAPIFolder
Dim oExpl As Outlook.Explorer
' Logon
Set oApp = New Outlook.Application
Set oSess = oApp.GetNamespace("mapi")
oSess.Logon "#OFFLINE#", , False, True
' Ordner zur Anzeige auswählen
Set oFld = oSess.GetDefaultFolder(olFolderInbox)
Set oExpl = oApp.Explorers.Add(oFld)
oExpl.Display
End If
und weitergegoogelt.
Stichwort: MAPI
Code Snippet 2
MAPISession1.SignOn
MAPIMessages1.SessionID = MAPISession1.SessionID
Mit Hilfe von der Befehlszeile ‚MAPIMessages1.Compose’ wird nun eine neue Mail verfasst. Dazu gehören dann die Befehle ‚MAPIMessages1.RecipDisplayName = empfänger@mail.com’, sowie ‚ MAPIMessages1.MsgSubject = „Betreff’, welche den Text für die Betreffzeile festlegt und schlussendlich noch der Befehl ‚MAPIMessages1.MsgNoteText = „Nachrichtentext“’, mit dem dann der Text für die Mail definiert wird.
Schlussendlich kann dann durch den Befehl ‚MAPIMessages1.Send’ die Mail gesendet werden. Dazu muss allerdings Microsoft Outlook geöffnet sein und ein Benutzerkonto eingerichtet sein.
Ein kleines Beispiel soll schlussendlich noch zum besseren Verständnis dienen:
Private Sub Form_Load()
MAPISession1.SignOn
MAPIMessages1.SessionID = MAPISession1.SessionID
MAPIMessages1.Compose
MAPIMessages1.RecipDisplayName = “empfänger@mail.com”
MAPIMessages1.MsgSubject = “Dies ist die Betreffzeile”
MAPIMessages1.MsgNoteText = “Dies ist der Nachrichtentext”
MAPIMessages1.ResolveName
MAPIMessages1.Send
End Sub
Natürlich können auch Dateianhänge mit Visual Basic verschickt werden. Dazu werden einfach noch folgende Zeilen Code eingefügt:
MAPIMessages1.AttachmentIndex = 0
MAPIMessages1.AttachmentPosition = 0
MAPIMessages1.AttachmentName = "Datei.doc"
MAPIMessages1.AttachmentPathName = "C:\datei.doc"
Ein Formular für die Eingabe der Daten -> OL öffnen -> und versenden =)
Nur am Rande:
Um es einfacher zugestalten wäre die eine oder andere Zeile Quelltext von deiner seite sinnvoll.