Sikring af Web Page Method som leverer Hash nøgle
Hejsa.Mit scenarie er :
1. Jeg har en REST Webservice som leverer nogle store JSON/XML Datasæt. Denne webservice er sikret via kryptering med private/public key som serveren hvorpå servicen ligger kender og requesteren kender. Altså vedkommende som kalder REST servicen.
De genrerer en HASH ud fra en bestemt algoritme som bl.a. indeholder deres public og private key, nærmeste kvarter, året, dag på året og nogle flere oplysninger.
Alt det virker fint. Det betyder at den hash de sender med alle requests til REST servicen udløber inden for max 7 minutter fra den er genereret.
2. Jeg har lavet en REST Webservice som fungerer som proxy.
Dvs, denne service kalder min første service.
Når den får response retur cacher den det og behandler det.
Denne service modtager en hash nøgle fra kalderen og sender med når den kalder webservice nr. 1.
3. Jeg har så også en Iphone app som kalder Webservice nr. 2.
Denne app kender naturligvis private og publickey i sin kode. Den generer en nøgle hver gang den kalder webservice nr. 2.
Alt fint her...
4. Jeg skal nu lave en webside som også skal bruge Webservice nr. 2. Men det er Jquery som skal hente data og vise på et Google Map kort.
Jeg kan selvfølgelig ikke have public/private key liggende i Client Side kode.
Derfor tænkte jeg om man kunne lave en statisk metode på den side hvor google kortet ligger og mærkede den op med WebMethod.
Denne metode skulle så retunere en string som indeholdt en gyldig Hash nøgle. På den måde ville public/private key ikke blive eksporneret og Jquery ville stadig kunne kalde WebService nr. 2.
Men nu læser jeg mig så frem til at Web PageMethods sagtens kan kaldes fra andre side (også sider fra et helt andet website). Hvilket i princippet betyder at enhver kunne bygge en webside og kalde min metode og derved få udleveret en gyldig Hash nøgle og trække data fra min Webservice nr. 2 eller 1 i ca. 7 min.
Er der ikke en eller anden måde hvorpå man kan sikre sig mod det?
Altså at en Web PageMethod kun kan kaldes fra Jquery på det domæne hvorpå den ligger?
Mvh.
LAsse