Hi,
Ik ben momenteel een website aan het ontwerpen voor gebruikers van een online race spel. In dit spel kun je de afstelling van de auto (de 'setup') tot in detail zelf instellen en opslaan naar bestanden, om ze daarna te delen met andere gebruikers. Het idee van de website is om dienst te doen als een soort online opslag voor deze setup bestanden. Gebruikers maken en account aan en kunnen hun setups uploaden, waarna andere gebruikers ze weer kunnen downloaden.
Vaak zullen setups echter geheim moeten blijven binnen een groep / team (om niet alle details aan de competitie weg te geven). Daarom moeten er ook groepen aangemaakt kunnen worden binnen de website, waarvan gebruikers lid kunnen worden. Gebruikers in zo'n groep kunnen dan setups uploaden die alleen toegankelijk mogen zijn voor leden van die groep.
Dit is allemaal vrij eenvoudig te programmeren, maar het probleem is dat de setup bestanden wel gewoon fysiek op mijn webserver moeten staan. Daar zijn twee problemen mee:
1. Ik denk niet dat het enorm lastig zal zijn om zo aan setups te kunnen komen die niet voor jou bestemd zijn (bijvoorbeeld door gewoon de url te gokken).
2. Ik heb natuurlijk toegang tot mijn webserver, en dat zou een reden kunnen zijn voor teams om de website niet te gebruiken, bang dat ik de setups zou 'stelen'.
Probleem 1 is denk ik wel eenvoudig op te lossen, daar had ik twee ideeën voor:
a. De setup bestanden zijn '.sto' bestanden. Ik zou natuurlijk gewoon (via MIME-types ofzoiets dacht ik?) niet kunnen toelaten dat die bestanden direct gedownload kunnen worden. Heb ik het goed dat je op die manier zelfs met de juiste url niet aan de bestanden komt, of is dat te simpel gedacht?
b. Ik zou de bestanden kunnen encrypten met een simpele private key encryption. De key zou gewoon op mijn webserver staan (kan die gewoon in de ASP.NET code, of kan dat veiliger?) en setups worden encrypted opgeslagen en gedecrypt wanneer ze gedownload worden.
Zijn er andere oplossingen voor probleem 1, of klopt dit al helemaal niet?
Probleem 2 kan ik geen oplossing voor verzinnen. Zelfs als ik encryptie gebruik weet ik de key omdat die gewoon op de webserver staat, dus zou ik de bestanden zelf kunnen decrypten. Zelfs met een public/private key combinatie (waarbij de gebruiker zelf de decrypt key heeft en ik niet) zie ik niet hoe dat zou moeten werken, de setup file zal toch op de webserver gedecrypt moeten worden dus zal de webserver toch ooit de decrypt key nodig hebben. Ook houd niks me natuurlijk tegen om de setup eerst even stieken op te slaan voordat ik hem encrypt, dus ik kan moeilijk garanderen dat ik geen toegang heb tot de setups die mensen uploaden...
Wat voor mogelijkheden zijn hiervoor?
Bedankt!
Ik ben momenteel een website aan het ontwerpen voor gebruikers van een online race spel. In dit spel kun je de afstelling van de auto (de 'setup') tot in detail zelf instellen en opslaan naar bestanden, om ze daarna te delen met andere gebruikers. Het idee van de website is om dienst te doen als een soort online opslag voor deze setup bestanden. Gebruikers maken en account aan en kunnen hun setups uploaden, waarna andere gebruikers ze weer kunnen downloaden.
Vaak zullen setups echter geheim moeten blijven binnen een groep / team (om niet alle details aan de competitie weg te geven). Daarom moeten er ook groepen aangemaakt kunnen worden binnen de website, waarvan gebruikers lid kunnen worden. Gebruikers in zo'n groep kunnen dan setups uploaden die alleen toegankelijk mogen zijn voor leden van die groep.
Dit is allemaal vrij eenvoudig te programmeren, maar het probleem is dat de setup bestanden wel gewoon fysiek op mijn webserver moeten staan. Daar zijn twee problemen mee:
1. Ik denk niet dat het enorm lastig zal zijn om zo aan setups te kunnen komen die niet voor jou bestemd zijn (bijvoorbeeld door gewoon de url te gokken).
2. Ik heb natuurlijk toegang tot mijn webserver, en dat zou een reden kunnen zijn voor teams om de website niet te gebruiken, bang dat ik de setups zou 'stelen'.
Probleem 1 is denk ik wel eenvoudig op te lossen, daar had ik twee ideeën voor:
a. De setup bestanden zijn '.sto' bestanden. Ik zou natuurlijk gewoon (via MIME-types ofzoiets dacht ik?) niet kunnen toelaten dat die bestanden direct gedownload kunnen worden. Heb ik het goed dat je op die manier zelfs met de juiste url niet aan de bestanden komt, of is dat te simpel gedacht?
b. Ik zou de bestanden kunnen encrypten met een simpele private key encryption. De key zou gewoon op mijn webserver staan (kan die gewoon in de ASP.NET code, of kan dat veiliger?) en setups worden encrypted opgeslagen en gedecrypt wanneer ze gedownload worden.
Zijn er andere oplossingen voor probleem 1, of klopt dit al helemaal niet?
Probleem 2 kan ik geen oplossing voor verzinnen. Zelfs als ik encryptie gebruik weet ik de key omdat die gewoon op de webserver staat, dus zou ik de bestanden zelf kunnen decrypten. Zelfs met een public/private key combinatie (waarbij de gebruiker zelf de decrypt key heeft en ik niet) zie ik niet hoe dat zou moeten werken, de setup file zal toch op de webserver gedecrypt moeten worden dus zal de webserver toch ooit de decrypt key nodig hebben. Ook houd niks me natuurlijk tegen om de setup eerst even stieken op te slaan voordat ik hem encrypt, dus ik kan moeilijk garanderen dat ik geen toegang heb tot de setups die mensen uploaden...
Wat voor mogelijkheden zijn hiervoor?
Bedankt!