Hejsan alla kloka pellesoftare! Om du gör det med ASP sidor är det svårt att skydda. Du kan ju lägga koden i dll'er och göra kontrollen därifrån. Det enklaste torde vara att lagra licensnummer & licensurl med någon typ Tack grabbar! Hej. Men det är klart att den som kan ASP enkelt kan gå in i koden Japp att försöka skydda sin kod med via ASP är inte så bra, förenkelt att knäcka. Ja, det är ju en intressant lösning... Appropå DLL:er så är det ju inget jag vill använda mig av. Kunden ska själv snabbt kunna installera systemet på sin server - eller webbserver. Man kan väl kryptera asp-kod? Inte helt säkert, Thomas Tydal har en artikel om hur man knäcker, men ändå... All kod är krypterad... Känns nästan som om detta vore omöjligt. Det är inte så svårt att registrera en DLL.Licensnummerkontroll
Jag sitter och klurar på ett problem i ett system som vi har byggt i ASP mot en ACCESS-databas.
Jag har en tabell som heter LicenseNumber som innehåller fälten ID (räknare), LicenseNumber (själva licensnumret) och LicenseURL (URL:en där systemet får köras).
Jag skulle vilja ha en kontroll på att systemet körs enbart på lagrad URL (t.ex. www.domain.com) och om man flyttar systemet till en annan domän så ska det inte fungera utan man ska få ett felmeddelande som säger något om det hela. Likadant ska man inte i databasen kunna gå och ändra i fälten LicenseNumber och/eller LicenseURL för att kringå detta.
Har någon några bra idéer kring detta? Någon som kanske redan gjort något liknande och vill dela med sig av sina kunskaper?
Tacksam för svar.
Mvh,
PeterSv: Licensnummerkontroll
Sv: Licensnummerkontroll
av kryptering i databasen.
Men problemet är väl då att själva dekrypteringen kommer att synas om
någon går in i din ASP koden och tittar.
En annan ide är att du lägger kontrollen på en annan webserver.
Har aldrig gjort detta i ASP, bara i desktop aplikationer i c++,
men det borde gå att hämta information från en annan server via ASP-script.
Då kan du vid kontroll skicka den url som skall kontrolleras url som en querystring till en sida på denna sever, fråga databasen om url är godkänd och bara returnera
YES / NO om sidan finns i din egen databas.
På detta sätt kan du även hålla koll på hur många gånger en viss
licensierad användare använder ditt script + lite annan info.
Bara lite snabba tankar.
/PeteSv: Licensnummerkontroll
Pete... Just nu har jag lagt lösenord på databasen och krypterat det och öppnar den
med min connection string då jag dekrypterar lösenordet. Men det är ju som du säger att det är ju bara och titta i ASP-koden.
Men det lät intressant med din idé om att ha en central databas med alla licensnummer och kolla mot den från kundens applikation. Kan du utveckla detta lite mer? Steg för steg... Gärna med kod.
Tack för dina idéer!
/PeterSv: Licensnummerkontroll
Som sagt har jag inte implementerat denna lösning i ASP,
och det skulle vara bra om någon kunde bekräfta att det från ett
ASP-script går att hämta en extern hemsida dvs från en annan server.
Har själv ett sådant här lås för att förhindra att användare inte skall
kunna uppdatera info från nätet via min applikation.
Steg 1:
Skapa en databas på din egen server med, förslagsvis, fälten:
id, strLicId, strUrl, bIsValid + ev. dtLastUsed, iCounter, annat du vill lagra
Steg 2:
Skapa en "vanlig" sida på din egen server vilken tar en variabel
från querystringen, strURL, och som via ASP/PHP ställer en fråga
mot databasen dels om strURL finns och dels om bIsValid är satt
till TRUE.
Finns URLen i databasen och bIsValid är satt till TRUE skriver du ut
YES annars NO. Dvs skriv inte ut ngn annan HTML kod än dessa ord.
Orden skulle naturligtvis kunna bytas ut mot 1 / 0...
Uppdatera och lagra även ev. annan info till databasen i detta script.
Steg 3:
I början på ditt script, där kontrollen skall göras, på användarens server
laddar du hem sidan från din egen server, skulle kunna se ut så här:
www.myserver.com?strSQL=www.myclient.com
och lagrar sidan i en sträng variabel.
Sedan gör du en sökning i strängen och kollar om den innehåller "YES"
eller "NO". Utifrån detta kan du vidtaga åtgärder...
Du kan nu stänga av dina användare genom att sätta bIsValid till 0, FALSE.
/PeteSv: Licensnummerkontroll
och plocka port denna kontroll.....
Lika enkelt som att luska ut dekrypteringen på din redan fungerande
lösning.
DLL är kanske att föredra trots allt i detta fall.
/PeteSv: Licensnummerkontroll
Jag hade nog lagt all affärslogik (alltså kod som gör beräkningar och hämtar data osv osv) i en dll.
Och sedan i denna dll, kalla på en central server för att kolla om detta licensnummer och denna URL stämmer som det skall.
Tyvärr så kommer denna kontrol ta tid, och vad händer om den centrala servern är nere?
Så det man får göra är att första gången som systemt körs så gör man en kontroll mot den centrala servern, sedan skapar och gömmer en nyckel i registert någonstans, och sedan varje gång som dll skapas kollar man om denna nyckel i registert finns eller ej, om den inte finns så gör man en kontroll mot central server och ser om det är okej att köra.
Tyvärr är inte detta system idiot säkert heller eftersom det finns folk/program som ganska snart har listat ut och knäckt det, men som sagt, lite bättre än ren ASP kod är det iallafall.
- MSv: Licensnummerkontroll
Man kanske rent av bara gör en koll internt i systemet att den ligger på rätt domän - dvs. den domän som finns lagrad i databasen. Om detta stämmer så körs sidorna som vanligt om inte, då visar man ett felmeddelande typ "Denna applikation är inte registrerad för denna domän".
Eller... Hmmm... Detta tål att kluras på. Det vore ju intressant för oss utvecklare att ha en viss säkerhet att inte skripten körs i multipla kopior på flera servrar.
Jag återkommer ...
Tack alla!Sv: Licensnummerkontroll
Sv: Licensnummerkontroll
En ASP kunnig person kan ju med
lätthet ta bort eventuell licenskod från de sidor
där den finns och sedan köra sidorna, utan koden...
Jag vet inget som kan lösa detta. Tyvärr...
Helt klart något intressant som jag ska kolla upp...Sv: Licensnummerkontroll
Det enklast blir om du skriver en lite INSTALL.BAT fil som du lägger med när man har packat upp filerna där man vill.
I den INSTALL.BAT så skriver du koden för att registrera DLL, annars kan du göra med riktiga installations program men de kostar en slant att köpa.
- M