20061127

Fingerprinting Your AJAX Applications

Link

There's a pretty good article on adding fingerprinting to your Ajax requests so that you know on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server side that a request came from Ajax. However, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's one statement in it that (unless I completely misunderstand) is entirely false (page 25):

This fingerprinting technique helps in determining cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 type of client code that has sent this request. It is possible to lockdown resources for just cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right client on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server-side as well. This type of header is harder to add by automated crawlers and bots since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 logic and calls need to be understood first.
Consequently, automated attacks on your Ajax resources can be avoided.

Excuse me? The example cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y have is just a custom header with a timestamp in it. How is that hard for bot code to add? And how is it hard to falsify? Yes, it prevents XSRF vulnerabilities because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 XSRF request would cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n have to be created using XmlHttpRequest, which can't go across domains, but to write a script that I run to steal resources from it is trivial.

It becomes hard when that Ajax request includes information that only could have been obtained by visiting cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 containing page first. For example, in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 classic Netflix example, you have to visit a Netfix page where a hidden form field is set with a token. Future XmlHttpRequests add this token as eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r a request parameter or as a header, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recipient of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 request validates cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 token against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 session - you can't do this with XSRF because you have to visit step 1 first (possible) cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n parse cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 response of that for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 token to set on remaining calls (only possible with XHR, which won't go cross-domain).

I hope I'm just completely mis-reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir response.

0 comments: