C#/mono client + PHP server: networking

Tags:    unity3d c# mono php mysql

Hej alle sammen.

Jeg er gået i gang med at lave et spil i Unity3D, og nu har jeg noget data jeg gerne vil have gemt i en sql server, sådan en bruger kan spille vidre fra en anden pc.

nu tænker jeg så hvad er den smartest måde at undgå at brugeren kan ændre det data der sendes til serveren.

1. hash
har tænk lidt på at sende et hash af værdierne + et salt med, og se om det passer på serveren, inden dataen gemmes.
Fold kodeboks ind/udKode 


2. kryptering
er der en relativt nem måde at lave en sikker forbindelse mellem C# og PHP?


det bedste er vel at lave 1 + 2 :)



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Hashing (faktisk en MAC i dette tilfælde) bruges til at sikre integritet. Dvs. den kan fortælle dig at ingen har pillet ved beskeden.

Kryptering giver fortrolighed, dvs. at ingen andre end dem med nøglen kan læse beskeden. Men kryptering i sig selv forhindrer ikke at nogen har ændret på beskeden.

Brugt sammen kan du være sikker på at ingen andre har kunne læse beskeden (via. kryptering) samt være sikker på at ingen har ændret på den (via. en MAC). Det kan dog godt være du kan nøjes med integritet her siden det jo ikke er dankortoplysninger du sender.

SSL (går også under TLS) kan være det du leder efter. Den giver både fortrolighed og integritet. System.Net.Security indeholder blandt andet en SslStream klasse og PHP kan sikkert bruge OpenSSL eller lignende.

EDIT: Det var måske en ide at bruge en POST i stedet for en GET.



Indlæg senest redigeret d. 12.08.2012 15:48 af Bruger #14645
Hashing (faktisk en MAC i dette tilfælde) bruges til at sikre integritet. Dvs. den kan fortælle dig at ingen har pillet ved beskeden.

Kryptering giver fortrolighed, dvs. at ingen andre end dem med nøglen kan læse beskeden. Men kryptering i sig selv forhindrer ikke at nogen har ændret på beskeden.

Brugt sammen kan du være sikker på at ingen andre har kunne læse beskeden (via. kryptering) samt være sikker på at ingen har ændret på den (via. en MAC). Det kan dog godt være du kan nøjes med integritet her siden det jo ikke er dankortoplysninger du sender.

SSL (går også under TLS) kan være det du leder efter. Den giver både fortrolighed og integritet. System.Net.Security indeholder blandt andet en SslStream klasse og PHP kan sikkert bruge OpenSSL eller lignende.


Tak det var noget alla MAC jeg var på udkig efter :) (som stortset vel også bare er et hash)

EDIT: Det var måske en ide at bruge en POST i stedet for en GET.
hvad forskel skulle det gøre?




Indlæg senest redigeret d. 12.08.2012 15:51 af Bruger #3427
GET har en længdebegrænsning i URI-strengen. Hvis du skal sende binær data skal du nok encode det, f.eks. base 64 - ved ikke helt om de tegn alle er gyldige i en URI.

Hvis der på en eller anden måde skulle slippe et link ud så vil google nok ikke indeksere hvis du giver en 404 på GET - eller noget, laver ikke så meget web.





GET har en længdebegrænsning i URI-strengen. Hvis du skal sende binær data skal du nok encode det, f.eks. base 64 - ved ikke helt om de tegn alle er gyldige i en URI.

Ja okay på den måde, der har du ret GET er ASCII only, tænkte du mente POST var mere sikkert.


Hvis der på en eller anden måde skulle slippe et link ud så vil google nok ikke indeksere hvis du giver en 404 på GET - eller noget, laver ikke så meget web.

kan kigge på useragent og se om det er google, eller mit spil :)



t