» »

jquery ajax webservices asp.net

jquery ajax webservices asp.net

smash ::

Zanima me naslednje...

recimo da iz asp.net strani preko jqueryja z ajax metodo poklicem nek webmethod na webserviceu...

na tem webserviceu imam naprimer 10 metod, ki so vidne navzven...

nekatere od teh metod so recimo taksne, da jih dolocen uporabnik nebi smel, mogel, poklicat...recimo DeleteItem(int itemid)

kako prepreciti uporabniku, oz kako narediti, da bi lahko uporabnik lahko klical samo dolocene metode in ne vseh


uporabnik lahko preko source ugotovi, kateri webservice klicem, potem vidi, katere metode so vse gori in brez tezav naredi tak request, ki bi klical problematicne metode

kako se najbolje zavarovati pred tem?

680x0 ::

Uporabnika normalno avtenticiraš preko obrazca in vzpostaviš session.

Ker se session cookiji pošljejo znotraj vsakega asinhronega klica, lahko na strežniku potem ugotoviš ali je uporabnik upravičen do uporabe določene metode ali ne.

smash ::

ampak to zgleda tako, da bi moral pri vsakem ajax klicu na server preverjati upravičenost uporabnika do posamezne metode...kar pomeni, da bi to upočasnilo sam klic ter malo zakompliciralo vse skupaj (podaljšalo razvoj ter kompleksnost aplikacije)

sprašujem se ali je potem sploh smiselno uporabljati ajax oz. ali raje uporabljati kar "star" asp.net postback princip, pri katerem teh težav ni...verjetno odvisno od primera do primera

mene bolj zanima, kakšna je kaj praksa oz. kakšne pristope uporabljate vi pri ajax klicih oz. ali sploh rešujete ta problem ali kar pustite zadeve (webservice) odprte za vse avtenticirane uporabnike

carota ::

Tako kot je napisal C=64. Vedno pa je treba preveriti ali ima uporabnik pravice za kakšno radilakno akcijo kot je DeleteItem.

Gandalfar ::

>mene bolj zanima, kakšna je kaj praksa oz. kakšne pristope uporabljate vi pri ajax klicih oz. ali sploh rešujete ta problem ali kar pustite zadeve (webservice) odprte za vse avtenticirane uporabnike

To ti auth middleware transparentno resi. Ce uporabi ne sme dostopat do resourca ga odslovis se preden blizu tvoje metode pride.

smash ::

Gandalfar je izjavil:

>mene bolj zanima, kakšna je kaj praksa oz. kakšne pristope uporabljate vi pri ajax klicih oz. ali sploh rešujete ta problem ali kar pustite zadeve (webservice) odprte za vse avtenticirane uporabnike

To ti auth middleware transparentno resi. Ce uporabi ne sme dostopat do resourca ga odslovis se preden blizu tvoje metode pride.


auth middleware? a to je že kak narejen modul al si mislil, da se sam lotim neke autorizacije? lahko kaj več poveš o tem?


zanima me še nekaj...pozabimo na ajax in webservice...verjetno poznate kako deluje asp.net postback princip....tuhtam ali je možno ponarediti tak postback request, da se na serverju pokliče neka druga metoda, do katere uporabnik nima dostopa..recimo, da ima nek avtenticiran uporabnik gumb showitems, medtem ko drugi avtenticiran ima zraven še gumb deleteitem.....

recimo da prvemu ukrademo sejo...ali lahko naredimo tak request (recimo s fiddlerjem), da se pokliče metoda deleteitem, ki jo načeloma na ekranu lahko poklika samo drugi uporabnik? je to možno?

Gandalfar ::

Ce uporabniku ukradejo sejo ma ta vecje probleme kot samo to. Za to delas povezave preko https, da je to tezje.

smash ::

ok pustmo da uporabniku ukradejo sejo...

recimo da se uporabnik avtenticira preko forme in pride not..nakar naredi custom request, ki kliče neko drugo metodom, ki bi jo lahko izvedel nek drug avtenticiran uporabnik, ki jo ima na voljo za kliknit, medtem ko prvi ne...

lahko prvi naredi tak request, enkrat ko je ze avtenticiran? saj ves kaj mislim?

Gandalfar ::

Ce mas na svoji strani kaksen osnovni permission sistem, bos seveda pogledal vanj preden izvedes ta ukaz. Drugace si pa omisli kaksno knjigo, ker to kar sprasujes so osnove, ki bodo razlozene v drugem poglavju.

MrBrdo ::

Mene je to vedno motlo v ASP.NETu, k neki naklikaš, pol pa sploh ne veš kako stvar deluje. Bad learning tool :)
Gandalfar ma prav, sprašuješ stvari ki bi ti bile jasne če bi poznal osnove.
MrBrdo

sas084 ::

Kot je Gandalfar reku, za to se uporab authentication middleware.

Za .NET 2.0 uporabi WSE 3.0, če webservice razvijaš z novejšo verzijo .NET-a (se mi zdi da od 3.0 naprej) pa uporab WCF.
Sicer ti middleware omogoča tud kriptiranje SOAP message-ev, ma osebno se mi zdi bolj varno, če uporabš še HTTPS povezavo.

smash ::

ne vem če se razumemo...ampak ok...drugače pa teh "osnov" ni v nobeni knjigi...so pa opisane osnove avtenktikacije ter avtorizacije..seveda...ni pa to to kar sprasujem

kar zadeva webserviceov mi je jasno oz. mi postaja čedalje bolj, da je treba delati torej neko vmesno avtentikacijo..

potem pa sem začel razmišljati o navadnih postback klicih na server ter ali se jih da prirediti na ta način, da bi lahko poklical kakšno drugo "nedovoljeno" metodo

te stvari so daleč od tega, kar bi našel v kakšni asp.net knjigi

Gandalfar ::

http://www.amazon.com/gp/product/143022...

seveda so. Ti sprasujes naslednja poglavja:

19.-23: The ASP.NET Security Model, Forms Authentication, Membership, Authorization and Roles
in 30.: ASP.NET AJAX

> Sicer ti middleware omogoča tud kriptiranje SOAP message-ev, ma osebno se mi zdi bolj varno, če uporabš še HTTPS povezavo.

Firbec: a SOAP lahko klices iz web clienta (npr. IE-ja)?

smash ::

načeloma so teh knjigah vedno opisani primeri oz. principi, ki jih nikoli nisem rabil v praksi...ampak ok..mislim, da je čas, da zadeve preletim še enkrat..nekako dvomim, da bom našel to kar iščem

sas084 ::

V tem primeru, ko maš middleware in greš web servis klicat recimo iz IE-ja dobiš "unauthorised exception", tko de v tem primeru se ne da direkt klicat servisa. Nevem če obstaja kak dodatk za IE al pa za kater drug brskalnik, ki bi imel implementirano WS-Security (v tem primeru bi se po moje dalo). Smo pa z uporabo tega rešil podoben problem, kot ga ima smash (izvajanje določenih web servis funkcij samo za uporabnike z določenimi rolami).


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

JS frameworks: knockoutJS, angularJS, react, ...

Oddelek: Programiranje
417330 (4175) kuall
»

[asp.net]c# In Json

Oddelek: Izdelava spletišč
5976 (747) shadeX
»

[C#] Pravice za spreminjanje in restore baze

Oddelek: Programiranje
51068 (888) nuclear
»

Maco se igra (strani: 1 2 3 4 5 6 )

Oddelek: Izdelava spletišč
26125259 (14965) MaCoFaCo
»

[ASP.NET] Reload strani po vsakem kliku na kontrolo

Oddelek: Programiranje
5917 (864) frudi

Več podobnih tem