WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Licensiera en webbapplikation (https://www.wn.se/forum/showthread.php?t=18557)

Intet 2007-01-10 16:19

Har en webbapplikation i ASP.NET som skall säljas till ett företag och användas internt (intranet). Vill implemenera en licens så att enbart "godkända" datorer kan browsa och använda applikationen. Funderar på vad man kan skriva i koden som gör att man identifierar en maskin som browsrar applikationen. Min första tanke vara att hämta något form av serienummer eller Mac-adress från maskinen för att sedan jämföra mot ett register. Har dock efter lite googlande förståt att det är omöjligt att hämta mer information än i princip IP-adress, UserAgent och annan icke unik information från klienten pga säkerhetsrisker(?).

Hur skulle ni göra?

Hur kan man via en webbapplikation identifiera specifika klienter?

jonny 2007-01-10 16:28

Du kan ju begränsa det till vissa ipadresser, räcker inte det?

hnn 2007-01-10 17:30

Citat:

Originally posted by jonny@Jan 10 2007, 16:28
Du kan ju begränsa det till vissa ipadresser, räcker inte det?

För att utveckla Jonnys svar lite.

Begränsa det till att tex. enbart 10 datorer kan vara inloggade samtidigt. Eller 10 användare.

Intet 2007-01-10 17:41

Citat:

Ursprungligen postat av hnn
Citat:

Ursprungligen postat av jonny
Du kan ju begränsa det till vissa ipadresser, räcker inte det?

För att utveckla Jonnys svar lite.
Begränsa det till att tex. enbart 10 datorer kan vara inloggade samtidigt. Eller 10 användare.

Det hjälper inte. Jag vill kunna styra vilka individuella maskiner som får access. Det har att göra med att dessa maskiner är speciella klienter som vi förser kunder med. Vi vill se till att kunden inte köper dessa klienter från annan håll och köra med vår applikation utan att köpa nya licenser. Så IP-adress är inte tillräkligt unikt i mitt fall. Men forstätt gärna att komma på ideer :) Här är det tomt...

hnn 2007-01-10 18:53

Citat:

Ursprungligen postat av Intet
Citat:

Originally posted by -hnn@Jan 10 2007, 18:30
Citat:

Ursprungligen postat av jonny
Du kan ju begränsa det till vissa ipadresser, räcker inte det?

För att utveckla Jonnys svar lite.
Begränsa det till att tex. enbart 10 datorer kan vara inloggade samtidigt. Eller 10 användare.


Det hjälper inte. Jag vill kunna styra vilka individuella maskiner som får access. Det har att göra med att dessa maskiner är speciella klienter som vi förser kunder med. Vi vill se till att kunden inte köper dessa klienter från annan håll och köra med vår applikation utan att köpa nya licenser. Så IP-adress är inte tillräkligt unikt i mitt fall. Men forstätt gärna att komma på ideer Här är det tomt...

Då finns det egentligen bara en sak o göra.

Utveckla en egen applikation som skickar med en header i förfrågan till webbläsaren. Då kan du "enkelt" själv ta reda på i applikationen vilken MAC adress användaren har osv.

Kan ju också låsa användare till att enbart använda applikationen till er lösning.

Intet 2007-01-10 19:00

Jag har tänkt på den lösningen och det skulle fungera. Men jag vill försöka hitta en lösning som inte kräver någon extra applikation hos klienten. DVS all applikation skall ligga på servern.

freakalis 2007-01-10 21:52

Kan man inte ha någon form av installations login som om den blir godkänd sätter nån cookie som gör att man kan använda applikationen i framtiden?
Blir ju dock surt om någon rensar sina cookies.

andreasb99 2007-01-10 22:13

Citat:

Originally posted by Intet@Jan 10 2007, 17:19
Har en webbapplikation i ASP.NET som skall säljas till ett företag och användas internt (intranet). Vill implemenera en licens så att enbart godkända datorer kan browsa och använda applikationen. Funderar på vad man kan skriva i koden som gör att man identifierar en maskin som browsrar applikationen. Min första tanke vara att hämta något form av serienummer eller Mac-adress från maskinen för att sedan jämföra mot ett register. Har dock efter lite googlande förståt att det är omöjligt att hämta mer information än i princip IP-adress, UserAgent och annan icke unik information från klienten pga säkerhetsrisker(?).
Hur skulle ni göra?
Hur kan man via en webbapplikation identifiera specifika klienter?



Hej

Kanske Request.ServerVariables -REMOTE_HOST kan fungera?

REMOTE_ADDR The IP address of the remote host making the request.
REMOTE_HOST The name of the host making the request. If the server does not have this information, it will set REMOTE_ADDR and leave this empty.


Mer info ( källa till ovanstående-> http://www.4guysfromrolla.com/webtech/092298-3.shtml)

nbtstat -a ip_adress ger om möjligt domän+datornamn för ip adress.

jonny 2007-01-11 09:41

Så om kunden köper 10 licenser och sedan måste byta ut en dator slutar det fungera?

Vad menar du egentligen med speciella klienter?

Ara 2007-01-11 09:44

Citat:

Originally posted by Intet@Jan 10 2007, 17:19
Har en webbapplikation i ASP.NET som skall säljas till ett företag och användas internt (intranet). Vill implemenera en licens så att enbart "godkända" datorer kan browsa och använda applikationen. Funderar på vad man kan skriva i koden som gör att man identifierar en maskin som browsrar applikationen. Min första tanke vara att hämta något form av serienummer eller Mac-adress från maskinen för att sedan jämföra mot ett register. Har dock efter lite googlande förståt att det är omöjligt att hämta mer information än i princip IP-adress, UserAgent och annan icke unik information från klienten pga säkerhetsrisker(?).

Hur skulle ni göra?

Hur kan man via en webbapplikation identifiera specifika klienter?

har du kollat på att lösa det med certifierings auktoritet?

Intet 2007-01-11 10:52

Citat:

Originally posted by jonny@Jan 11 2007, 10:41
Så om kunden köper 10 licenser och sedan måste byta ut en dator slutar det fungera?
Vad menar du egentligen med speciella klienter?


Det är ingen "vanlig" dator utan en speciell klient som bara går att köpa på ett fåtal ställen i Sverige. Därför vill vi givetvis styra kunden att köpa från oss. Men givetvis även tillåta kunden att köpa från andra, men mot att kunden köper en ny licens av oss.

Intet 2007-01-11 11:10

Citat:

Ursprungligen postat av andreasb99
Citat:

Ursprungligen postat av Intet

Hej
Kanske Request.ServerVariables -REMOTE_HOST kan fungera?
REMOTE_ADDR The IP address of the remote host making the request.
REMOTE_HOST The name of the host making the request. If the server does not have this information, it will set REMOTE_ADDR and leave this empty.

Mer info ( källa till ovanstående- http://www.4guysfromrolla.com/webtech/092298-3.shtml)
nbtstat -a ip_adress ger om möjligt domän+datornamn för ip adress.

En riktigt bra ide ! Datornamn kan jag acceptera som hyfsat unikt. Visst går det och ändra, men jag ser det som en stort moment. Tyvärr så fick jag inte fram datornamn via "REMOTE_HOST" får bara tillbaka IP-adressen på klienten...

totoo 2007-01-12 00:45

remote_host är väl i princip alltid tom. Jag har aldrig sett nån browser som slänger med det där. Men det går väl att konfa.

eg0master 2007-01-25 07:03

En lösning som bygger på MAC adress är ju lika värdelös som IP eller hostnamn eftersom MAC-adressen också enkelt går att ändra.

Att använda sig av certifikat är nog det bästa. Du kan ju skapa en egen CA som du låter din server och dina klienter acceptera. Sedan via den skapar du certifikat för klienterna som de skall använda och sedan använder du HTTPS mot servern och låter servern bara acceptera certifikat från just din egen CA. Visst kan man då kopiera certifikaten till nya klientdatorer, men om du kombinerar detta med någoin form av räkning i servern (dvs att du ger varje klient olika certifikat och sedanför statistik på hur de används) så kan du ju kontrollera om ett certifikat används extremt ofta (dvs att man kopierat ett certifikat till flera olika maskiner). Bygger på att varje klient får ett unikt certifikat.

Nu när jag bjudit dig på en lösning så skulle jag vilja komma med ett annat tips. Min erfarenhet är att man som litet företag sällan tjänar på att utveckla kopieringsskydd av den typ du försöker göra. Det enda säkra är en helt egen applikation som agerar webproxy för varje klient och som någon föreslog bifogar ett par extra headrar med information. Jag föreslår att du litar lite mer på kunden. Det enda skydd du behöver är att i avtalet förbehåller du dig rätten när du vill kontrollera deras miljö för att se hur många klienter de har. Om det skall finnas någon begränsning så föreslår jag som någon skrev att bara räkna ett visst antal i servern och blocka om det är för många samtidiga användare. Om du inte är så paranoid med exakt vilken fysisk hårdvara som används i klienterna spar du mycket tid och pengar på att inte utveckla något som ändå enkelt kan kringgås samtidigt som kunden troligen förstår att du litar på honom. Kompletterat med rätten att kontrollera deras miljö har du ditt på det torra. Att göra affärer med någon man inte litar på är ingen bra idé. Gör affärer med folk du litar på och komplettera med avtal ifall du litat på fel person.


Alla tider är GMT +2. Klockan är nu 20:27.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson