ok, but why is it not JSON to submit a sting variable in json within
HTML?
for example making a call to a php script which returns an array of
strings in HTML for which i could update the DOM

for example {"items":{"box_test":"Some HTML here","box_test2":"Some
HTML there"}}

and then do something like

$(response.items).each(function(id,data){
$(id).html(data);
});

in the success function of the ajax call

is that unsecure?

and if the "Some HTML will be <script></script>" how unsecure is it?

Thanks for your replies Jens




On 29 Jan., 17:52, Eric Garside <gars...@gmail.com> wrote:
> Honestly, there's not a whole bunch you could do with JSON that's
> insecure. The entire meaning of JSON is Javascript Object Notation.
> All it means is, if you were to type a string of json out within a
> script tag, it would be a Javascript object.
>
> var json = {success: true, name: 'Some Customer', quantity: 8};
>
> If you received this via an AJAX call and force processing as JSON
> (i.e. using $.getJSON or $.post('url.php', function(data){},
> 'json');), then it can basically be trusted to come out only as JSON.
>
> That being said, it sounds like you're doing something which is not
> JSON, but rather JavaScript being transfered over AJAX.
>
> When you said:
>
> >ok and thats safe for things like a sting $("#cart_info").fadeIn
> > (500);setTimeout(function(){$("#cart_info").fadeOut(500)},2000);
> > getted from JSON?
>
> You are describing the perfect example of how not to use JSON. If you
> allow for this kind of processing to occur in a json string, you open
> a pretty huge security door, and anyone who can get malicious JS into
> your page can do anything from making your page appear blank,
> redirecting to a phising page, or simply just start opening popups
> with a bunch of porn.
>
> The simplest way to do it is to limit returns, and properly process
> your javascript. Ideally, you'd so something like:
>
> $.get('url.php', function(data){
>    if (data.success) fadeCart(500);
>
> }, 'json');
>
> function fadeCart(){
>     var cart = $('#cart_info').fadeIn(500);
>     setTimeout(function(){cart.fadeOut(500);}, 2000);
>
> }
>
> On Jan 29, 11:38 am, Stephan Veigl <stephan.ve...@gmail.com> wrote:
>
>
>
> > If you are trying to send JavaScript via AJAX that's not JSON. JSON is
> > about data only (see:http://json.org/), and that's exactly what makes
> > secureEvalJSON() secure. This function checks that there is nothing
> > else in your JSON except data, especially no JavaScript commands.
> > QUOTE: "secureEvalJSON: Converts from JSON to Javascript, but does so
> > while checking to see if the source is actually JSON, and not with
> > other Javascript statements thrown in."
>
> > If your question is: How secure is it to transfer JavaScript via AJAX?
> > Then the answer depends on how secure is your channel, how confident
> > are you that the data are really from the expected source and how much
> > do you trust your source.
>
> > For the first shot I would say, that it is insecure by default.
> > However it depends on your application. Most web pages are loaded over
> > an insecure channel and from an unidentified source, and we live quite
> > well with it - as long as it's not my net banking page or an online
> > shop.
> > But from your example, I guess you are talking exactly about an online
> > shop - than you could use https, this would eliminate the network
> > questions, at least.
>
> > by(e)
> > Stephan
>
> > 2009/1/29 Trend-King <i...@trend-king.de>:
>
> > > ok thats right but $.ajax() also do that so my problem is how safe it
> > > is to pass <script></script> through JSON and the append it to the DOM
> > > and it will be executed
>
> > > On 29 Jan., 15:13, jQuery Lover <ilovejqu...@gmail.com> wrote:
> > >> Reading the plugin homepage it does not. It only encodes and decodes
> > >> JSON or am I missing anything?
>
> > >> ----
> > >> Read jQuery HowTo Resource  -  http://jquery-howto.blogspot.com
>
> > >> On Thu, Jan 29, 2009 at 6:57 PM, Trend-King <i...@trend-king.de> wrote:
>
> > >> > ok and thats safe for things like a sting $("#cart_info").fadeIn
> > >> > (500);setTimeout(function(){$("#cart_info").fadeOut(500)},2000);
> > >> > getted from JSON?
>
> > >> > On 29 Jan., 14:51, Stephan Veigl <stephan.ve...@gmail.com> wrote:
> > >> >> hi,
>
> > >> >> check out the secureEvalJSON() method of the json 
> > >> >> plugin.http://code.google.com/p/jquery-json/
>
> > >> >> by(e)
> > >> >> Stephan
>
> > >> >> 2009/1/29 Trend-King <i...@trend-king.de>:
>
> > >> >> > Hi there another question from my, how save is it eval() data 
> > >> >> > getting
> > >> >> > via JSON $.ajax() call
>
> > >> >> > i want to get javascript data to be executed after JSON $.ajax() 
> > >> >> > call.
>
> > >> >> > or is there another way to do that?- Zitierten Text ausblenden -
>
> > >> >> - Zitierten Text anzeigen -- Zitierten Text ausblenden -
>
> > >> - Zitierten Text anzeigen -- Zitierten Text ausblenden -
>
> - Zitierten Text anzeigen -

Reply via email to