Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Software \ Generel software
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Open Source projekt, muligt stadig at gemme databa...

Af Gæst FOSSQ | 16-09-2017 22:13 | 1478 visninger | 4 svar, hop til seneste
Hej HOL. Det er måske lidt et dumt spørgsmål, men tænkte at der eventuelt var nogle der vidste mere end mig selv her. :) Sagen er, at jeg har et open source projekt som ligger frit tilgængeligt på github, et spil, hvor efter en spiller har spillet en bane, bliver spillerens score lagret i en MongoDB database. Jeg bruger MongoDB Atlas som min database provider, hvilket har virket fint indtil videre. Lige nu bruger jeg properties filer til at load forskellige spil indstillinger ind samt database credentials. Mit problem er så, at jeg ikke har lyst til at ligge disse database credentials frit ind i mit github repository, da jeg selvfølgelig ikke vil have at folk kan få adgang til database, og eventuelt ændre deres score mm. Jeg har selv tænkt lidt over hvad der kunne gøres, eventuelt bruge nogle former for kryptering, altså gemme database credentials i en binary fil, og så dekryptere den ved start af spillet. Problemer er jo så bare igen, at det er open source, så folk kan se krypterings algoritmen og så hurtigt komme til at dekryptere den. Lige nu har jeg en version, som bare bruger en arraylist som "database" på github, altså jeg har ikke min rigtige database version på github endnu, af ovenstående grunde. Jeg ved ikke om det jeg tænker, er muligt overhovedet? - men hvis i har nogle tips & tricks, så ville jeg da rigtigt gerne høre dem. Tak!
--
Gæstebruger, opret dit eget login og få din egen signatur.
#1
Steffen
Gæst
16-09-2017 22:58

Rapporter til Admin
Umiddelbart lyder det lidt forkert at du vil have spillet til at tage fat i databasen direkte, og det korte svar på dit credentials problem er selvfølgelig at det ikke kan lade sig gøre. (hvis credentials ligger på klienten så kan klienten få fat i dem, længere er den egentlig ikke) Hvis du nu lavede et api som du afleverede data fra spillet til, så skal du i hvert fald ikke bekymre dig om database credentials. - det er jo første skridt. Næste er så at du gerne vil undgå at folk kan manipulere med sin score. -den er sværere. Hvis jeg spillede dit spil og fandt det request der bliver lavet til api'et når man har gennemført en bane, kan jeg jo som udgangspunkt altid sende det request igen, og ændre min score. For at kunne udtænke den gyldne løsning her skal man nok kende dit spil og måden score udregnes på.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#2
Coff
Supporter
16-09-2017 22:59

Rapporter til Admin
Du behøver vel ikke lægge dit brugernavn og password til databasen i koden. Læg det i en properties fil som du ikke lægger på sammen med resten af koden.
--
#3
Spuc
Bruger Aspirant
16-09-2017 23:20

Rapporter til Admin
Oftest tilføjer du en .gitignore fil hvor du skriver filnavnet i. Hver gang du beder git om at checke ind, så kigger den lige forbi filen(.gitignore) først for at se om der er nogle filer der skal udelades. Husk at hvis du har checket filen ind én gang, så vil alle folk kunne gå tilbage og se hvad filen indeholdte (med mindre du retter i din git historik). Du kan læse mere her: https://help.github.com[...] Hvis du stadig gerne vil lade folk komme hurtigt igang med dit projekt (de kan jo selv køre en kopi fa det), så kan du jo lave en lille "example" fil. Lad os sige at dine database login-oplysninger står i filen database.config, men database.config er tilføjet til din .gitignore. Så kan du lave en fil der hedder database.config.example og så skrive i dokumentationen at de lige skal kopiere database.config.example over til en fil database.config (husk at den fil har de ikke hvis de skal i gang) og herefter skal de rette den til.
--
#4
L00t
Nørd
17-09-2017 16:49

Rapporter til Admin
Sørg først for, at du har et deployment-system sat op til at automatisere dine releases. Sørg derfter for at dine konfigurationsindstillinger bliver opdateret af din deployment-mekanismen, sådan at du alene har eksempel-placeholders liggende i dine config-filer. Når din kode bliver bygget som en del af din deployment pipeline, så stempler ... noget... dine rigtige konfigurationsindstillinger ned i dine config-filer. Det vil sige at dine følsomme brugernavne og kodeord kun ligger dit deployment-system. De fleste CI/CD systemer understøtter "sikre" miljø-variable, som du mere eller mindre automatisk, alt efter CI/CD system, kan få stemplet ned i dine filer.
--
w00t

Opret svar til indlægget: Open Source projekt, muligt stadig at gemme databa...

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning