For security reasons you should consider to return json only if the request is an xmlhttprequest.
I added

$c->forward( $c->view("JSON") )
          if ( $c->req->header("X-Requested-With") eq "XMLHttpRequest" );

to my end method. If someone tries to get the json data directly he gets an error or an other template. I don't know if YUI adds this specific header to each json request but it should. This is not enough to make you json data bullet proof, but a good step in the right direction. I suggest <http://en.wikipedia.org/wiki/Cross-site_request_forgery > and <http://www.gnucitizen.org/blog/csrf-demystified/> as a lecture.

regards,

moritz


Am 12.03.2008 um 14:47 schrieb Matt Pitts:

I'm going to have to be the red-headed stepchild that advocates XML...

-----Original Message-----
From: Mesdaq, Ali [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 11, 2008 5:19 PM
To: The elegant MVC web framework
Subject: RE: [Catalyst] implementing ajax

Jennifer,

Are you sure you want to stick with this route? Looks like your going
to
make a lot of work for yourself. I would hate to see the js code to
make
xml. Use the js code to just post the values you want read those
values

I can't speak too much on the generation of XML on the client, but I do advocate the use of POST rather than uploading an XML body. Most of the
popular JS toolkits make this quite easy.

Why would you want to use JSON? Because javascript can just read it
straight in and you can use it without having to parse anything. Your
js
would just eval the returned json content and use it. If you return
xml
you will need to parse it out and just makes a lot of work.

The main reason against JSON for me is security. Something that can be
eval'd is very dangerous and I'm sure we're all aware of the cross- site vulnerabilities that take advantage of JSON returned data. The one thing
that's always mentioned as total failsafe against it is to *not* use
JSON as your returned data structure.

As far as parsing the XML, that's why I use ExtJS. I can define a Store and use XPath to map Record fields to my XML data - ExtJS does the rest.
It's a bit like having a Model of my data on the client side.

Just my 2 cents.

v/r
-matt pitts

_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/


_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to