[ALG] Licentie-check en webapps, hoe doe jij dat?*

Pagina: 1
Acties:

  • terabyte
  • Registratie: September 2001
  • Laatst online: 28-06 12:53

terabyte

kan denken als een computer

Topicstarter
Voorgeschiedenis:
[topic=374999]

Ik ben op het punt beland, dat ik een werkende Webclass DLL heb, die door de klant (school) kan worden geinstalleerd.

Om jat- en andere illegale praktijken te voorkomen, heb ik een licentie-code check uitgevoerd.

Hoe werkt het:
Er is een .ini bestand, met daarin:
- Naam van de school
- Naam van de school, versleuteld als licentienummer (key)

Wat gebeurt er als een Webclass pagina wordt opgevraagd:

1) Naam van de school wordt gelezen uit .ini bestand
2) Licentiekey wordt gelezen uit .ini bestand
3) Naam van de school wordt opnieuw versleuteld
4) Nieuw versleutelde licentiekey wordt vergeleken met die uit de .ini bestand
5) Als het niet overeenkomt, wordt boven elke pagina een Response.Write neergezet dat de licentie ongeldig is.

Dit is niet de juiste methode.

Waarom niet?
- Bij elke bezoek wordt de code gechecked (performance..)
- Ik heb geen invloed:

Stel: ik ga later over op een soort 'contract', waarbij de klant (school) een licentie krijgt dat bijv een jaar of een halfjaar geldig is, dan moet de licentie automatisch verlopen als het contract niet verlengd is. Ook als ik merk dat de 'klant' dingen doet die niet de bedoeling zijn (regels uit contract negeren oid) moet ik invloed kunnen hebben.

Ik dacht dus aan een check, bijv. 1x per week, waarbij de Webclass verbinding maakt met m'n eigen server om te zien hoe het staat met de licentie.

Misschien zijn er betere methoden?

  • -RenE-
  • Registratie: September 2001
  • Laatst online: 09-09 19:04
Op zaterdag 02 februari 2002 11:19 schreef terabyte het volgende:
Voorgeschiedenis:
[topic=374999]

Ik dacht dus aan een check, bijv. 1x per week, waarbij de Webclass verbinding maakt met m'n eigen server om te zien hoe het staat met de licentie.

Misschien zijn er betere methoden?
Toen Microsoft een dergelijke 'feature' inbouwde was de wereld te klein. Ik heb jouw voorgeschiedenis niet gezien, maar vraag me wel of dit de methode is.

Misschien kun je de licentie koppelen aan het IP adres? Dan voorkom je iig thuiskopieren. Of misschien kan je programma contact maken met een op het schoolnetwerk centraal draaiende licentie controle server. Je kunt dan ook het aantal tegelijk draaiende kopieen beperken.
Voor alles wat niet op een netwerk staat dien je dan dus wel elke termijn een nieuwe .ini file naar de klant te versturen.

Verwijderd

je zou de datum in je key kunnen verwerken, zodat je kunt kijken wanneer hij afloopt.

en effe voor rene:
Als je een webap verkoopt, is er ook internet aanwezig op die machine. Als je windows of office verkoopt, hoeft er niet perse internet aanwezig te zijn. dus de verglijking met microsoft is niet helemaal terug vind ik.

  • terabyte
  • Registratie: September 2001
  • Laatst online: 28-06 12:53

terabyte

kan denken als een computer

Topicstarter
Ik heb al iets gemaakt.

Voor de geinteresseerden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Dim sKey As String
' message text instellen (voor als licentie niet OK is)
Dim DesignURL As String
Dim MessageText As String
DesignURL = "www.thefirstbyte.nl/costumerdata/"
MessageText = "<br><a href=""http://" & DesignURL & _
    ReadINI("gebruiker", "klantnummer") & _
    "/license.htm""><b><font color=""#FF0000"">
    WebKernel niet gelicenseerd!</font></b></a>"

' AppID van internet halen van The FirstByte server
Dim AppID As String
AppID = ReadFileRemote(DesignURL & ReadINI _
    ("gebruiker", "klantnummer") & "/licentie.txt", "")
' bij externe serverfouten controle staken
If Len(AppID) <> 4 Then
    CheckLicenseKey = ""
    Exit Function
End If
Dim dReg As CGenericRegistration
sKey = ReadINI("licentie", "applicationid")
Set dReg = New CGenericRegistration
' versleutelde AppID uit .ini halen en controleren
If dReg.IsKeyOK(sKey, AppID) = False Then
    CheckLicenseKey = MessageText
End If
Set dReg = Nothing

' extra controle bedrijfsnaam + serial
Dim oReg As COwnerRegistration
sKey = Replace(ReadINI("licentie", "lcbedrijf"), "-", "")
Set oReg = New COwnerRegistration
If oReg.IsKeyOK(sKey, ReadINI("gebruiker", "bedrijf"), AppID) = False Then
    CheckLicenseKey = MessageText
End If
Set oReg = Nothing

functie ReadFileRemote: gegevens van een andere site afhalen dmv secure verbinding
functie ReadINI: gegevens uit .ini bestand lezen
Classen COwnerRegistration en CGenericRegistration: data versleutelen (MD5)
AppID: een 4 cijferige code (alleen bij mij bekend), dat zowel op de server staat als in de ini (versleuteld)


En het werkt perfect. *D

Verwijderd

en wat als de server nu down is waar ie info vanaf moet halen..(jah oke komt bijna nooit voor, maar bijv met de trueserver capriolen tegenwoordig..)

  • terabyte
  • Registratie: September 2001
  • Laatst online: 28-06 12:53

terabyte

kan denken als een computer

Topicstarter
Op zaterdag 02 februari 2002 19:49 schreef turbop het volgende:
en wat als de server nu down is waar ie info vanaf moet halen..(jah oke komt bijna nooit voor, maar bijv met de trueserver capriolen tegenwoordig..)
Dan worden eventuele 'overtredingen' door de vingers gezien:
code:
1
2
3
4
If Len(AppID) <> 4 Then
    CheckLicenseKey = ""
    Exit Function
End If

(Want AppID = 4 cijfers...)

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

aangezien een dll in deze situatie vergelijkbaar is met een gezende php app is:
ten eerste zet je een expiration date in de ini file (gewoon simpelweg leesbaar). Zo ook de schoolnaam. Deze tezamen met een in de dll gebakken saltstring jas je door md5() tezamen met de strlen() van de ini file (oid) en als deze niet overeenkomt met de key in de ini file:

die("tsk!".mail('pietjepuk@jouwhost.nl','kolere zooi',"heel veel data met info"));

evt. zelfs meteen de hele software (jezelf dus) van de hd wissen. Geen medelijden. Fuck'm.

Klaar voor een nieuwe uitdaging.


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op zaterdag 02 februari 2002 21:46 schreef chem het volgende:
evt. zelfs meteen de hele software (jezelf dus) van de hd wissen. Geen medelijden. Fuck'm.
Jij hebt wel HEEL veel vertrouwen in je eigen code :)
telefoontje: uh tja, er ging ff wat fout, en nu tja, is de directory weg :?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

Op zaterdag 02 februari 2002 21:55 schreef Nielsz het volgende:

[..]

Jij hebt wel HEEL veel vertrouwen in je eigen code :)
telefoontje: uh tja, er ging ff wat fout, en nu tja, is de directory weg :?
"er ging iets fout? u bedoelt: u zat met de licentie te kloten? volgens mij kunt u beter even spreken met de salesafdeling.............hallo........... ? hallo, is daar nog iemand?"

Klaar voor een nieuwe uitdaging.


  • terabyte
  • Registratie: September 2001
  • Laatst online: 28-06 12:53

terabyte

kan denken als een computer

Topicstarter
Hehehehe :P

Maar zulke dingen zijn op zich ook geen probleem

(Zo'n DLL heeft standaard al read/write/delete mogelijkheden ;))

Maar ik vind zo'n "licentie-verlopen" waarschuwing, die door elke bezoeker wordt gelezen wel 'harder' >:)

Verwijderd

Op zaterdag 02 februari 2002 23:28 schreef terabyte het volgende:
Hehehehe :P

Maar zulke dingen zijn op zich ook geen probleem

(Zo'n DLL heeft standaard al read/write/delete mogelijkheden ;))

Maar ik vind zo'n "licentie-verlopen" waarschuwing, die door elke bezoeker wordt gelezen wel 'harder' >:)
Da's prima ja. Heb weleens een on-line shop gezien met zo'n mededeling: k was meteen weg :P

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op zaterdag 02 februari 2002 22:47 schreef chem het volgende:
[..]
"er ging iets fout? u bedoelt: u zat met de licentie te kloten? volgens mij kunt u beter even spreken met de salesafdeling.............hallo........... ? hallo, is daar nog iemand?"
Of Erger, foutje in de software, de hele HD is gewist, gaat het bedrijf jou niet meer opbellen, maar hun advocaat, En zo'n rechtzaak ga je gegarandeerd verliezen als software maker.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


Verwijderd

Op zondag 03 februari 2002 14:32 schreef dusty het volgende:

[..]

Of Erger, foutje in de software, de hele HD is gewist, gaat het bedrijf jou niet meer opbellen, maar hun advocaat, En zo'n rechtzaak ga je gegarandeerd verliezen als software maker.
enkel de dir van het programma wordt gewist he!!
Pagina: 1