<html><head></head><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div class="" dir="ltr" id="yui_3_16_0_1_1444380613734_2464">I was reading about <br class="" id="yui_3_16_0_1_1444380613734_2631"></div><h3 class="" id="yui_3_16_0_1_1444380613734_2633">Stored XSS via AJAX on <br></h3><div dir="ltr" id="yui_3_16_0_1_1444380613734_2464"> <a id="yui_3_16_0_1_1444380613734_2585" href="https://google-gruyere.appspot.com/part2">Web Application Exploits and Defenses</a> <br></div><div style="width:450px; font-family: 'Georgia', 'Times', 'Times New Roman', 'serif';margin-top:5px; margin-bottom: 5px; background-color: #ffffff;" id="enhancrCard_0" class="link-enhancr-attachment link-enhancr-element richcompose-card" contenteditable="false"><table id="yui_3_16_0_1_1444380613734_2637" class="link-enhancr-element" style="width:450px; height:170px; position: relative; display: block;" border="0" cellpadding="0" cellspacing="0"><tbody id="yui_3_16_0_1_1444380613734_2636"><tr class="link-enhancr-element"><td class="link-enhancr-element" colspan="8" style="height: 1px; background-color: #e5e5e5; font-size: 1px; border-collapse: collapse;"><div class="link-enhancr-element" style="height: 1px; background-color: #e5e5e5; font-size: 1px; line-height:0px;"> </div></td></tr><tr id="yui_3_16_0_1_1444380613734_2635" class="link-enhancr-element"><td rowspan="5" class="link-enhancr-element" style="width: 1px; background-color: #e5e5e5; font-size: 1pt; border-collapse: collapse;"><div class="link-enhancr-element" style="width: 1px; background-color: #e5e5e5; font-size: 1pt;"> </div></td><td id="yui_3_16_0_1_1444380613734_2672" class="link-enhancr-element link-enhancr-image-wrap enhancr-image-crop" rowspan="5" style="vertical-align: middle; width: 168px; height: 168px; background-color: rgb(255, 255, 255); border-collapse: collapse;"><div id="yui_3_16_0_1_1444380613734_2671" class="link-enhancr-element" style="width: 168px;" align="center"><a id="yui_3_16_0_1_1444380613734_2670" href="https://google-gruyere.appspot.com/part2" class="link-enhancr-card-urlWrapper link-enhancr-element" style="text-decoration: none !important;text-decoration:none; color: #000000 !important;"><img id="yui_3_16_0_1_1444380613734_2669" data-id="19f23f8a-1218-2397-8971-f80765c871a2" alt="image" src="https://google-gruyere.appspot.com/static/closed.gif" class="link-enhancr-thumbnail-image link-enhancr-element yahoo-ignore-inline-image" style="display: block; margin: auto;" height="168" width="168"></a></div></td><td rowspan="5" class="link-enhancr-element" style="width: 1px; background-color: #e5e5e5; font-size: 0pt; border-collapse: collapse;"><div class="link-enhancr-element" style="width: 1px; background-color: #e5e5e5; font-size: 1pt;"> </div></td><td rowspan="5" class="link-enhancr-element" style="width: 14px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;"><div class="link-enhancr-element" style="width: 14px; background-color: #ffffff; font-size: 14pt;"> </div></td><td colspan="2" class="link-enhancr-element" style="height: 6px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;"><div class="link-enhancr-element" style="height: 6px; background-color: #ffffff; font-size: 6pt;"> </div></td><td id="yui_3_16_0_1_1444380613734_2634" rowspan="5" class="link-enhancr-element" style="width: 20px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;"><div class="link-enhancr-element" style="width: 20px; background-color: #ffffff; font-size: 20pt;"> </div></td><td class="link-enhancr-element" rowspan="5" style="width: 1px; background-color: #e5e5e5; font-size: 1pt; border-collapse: collapse;" width="1"><div class="link-enhancr-element" style="width: 1px; background-color: #e5e5e5; font-size: 1pt;"> </div></td></tr><tr><td class="link-enhancr-element" colspan="2" style="width: 100%; vertical-align: middle; font-family: 'Georgia', 'Times', 'Times New Roman', 'serif';"><div class="link-enhancr-text-part link-enhancr-element" style="line-height:16.5px; background-color: #ffffff; height: 135px; width: 245px;"><div class="link-enhancr-element" style="word-wrap: break-word; word-break: break-all;"><span class="link-enhancr-element icon  icon-shrink link-enhancr-toggle"></span><span class="link-enhancr-element icon icon-close link-enhancr-delete"></span><a href="https://google-gruyere.appspot.com/part2" class="link-enhancr-card-urlWrapper link-enhancr-element" style="text-decoration: none !important;text-decoration:none; color: #000000 !important; line-height: 100%; font-size: 18px; display: block;"><span class="link-enhancr-element link-enhancr-card-title" style="margin: 0; font-weight: normal;margin-bottom: 3px; font-size: 18px; line-height: 21px; max-height: 43px; color: #000000; overflow: hidden !important; display: inline-block;">Web Application Exploits and Defenses</span></a><div style="font-size: 13px; line-height: 20px; color: #999999; max-height: 81px; font-family: 'Georgia', 'Times', 'Times New Roman', 'serif';overflow: hidden;" class="link-enhancr-card-description link-enhancr-element">Cross-Site Scripting
(XSS) </div></div></div></td></tr><tr><td colspan="2" class="link-enhancr-element" style="height: 4px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;"><div class="link-enhancr-element" style="height: 4px; background-color: #ffffff; font-size: 4pt;"></div></td></tr><tr id="yui_3_16_0_1_1444380613734_2640"><td class="link-enhancr-element" style="vertical-align: middle; font-family: 'Arial', 'Helvetica Neue', 'Helvetica', 'sans-serif';"><div class="link-enhancr-element" style="font-size: 0pt;"><a href="https://google-gruyere.appspot.com/part2" class="link-enhancr-card-url link-enhancr-element" style="color: black; text-decoration: none !important;text-decoration:none;cursor:pointer !important;" target="_blank"><span id="yui_3_16_0_1_1444380613734_2601" class="link-enhancr-element link-enhancr-view-on" style="display: inline-block; line-height: 11px; max-width: 145px; min-width: 85px; overflow: hidden; max-height: 13px; word-break: break-all;"><span class="link-enhancr-element link-enhancr-mobile-no-resize" style="vertical-align:middle; font-size: 9px; line-height: 11px; color: #999999; -moz-text-size-adjust: none; -ms-text-size-adjust: none; -webkit-text-size-adjust:none; text-size-adjust:none;">View on <span style="font-weight: bold" class="link-enhancr-view-on-domain">google-gruyere.apps...</span></span></span></a></div></td><td id="yui_3_16_0_1_1444380613734_2639" class="link-enhancr-element" style="vertical-align: middle; width: 100px; font-family: 'Arial', 'Helvetica Neue', 'Helvetica', 'sans-serif';"><div id="yui_3_16_0_1_1444380613734_2638" class="link-enhancr-element link-enhancr-preview-wrapper" style="max-width: 100px; min-width: 80px; overflow: hidden; text-align: right; line-height: 11px; max-height: 13px; font-size: 0pt;"><span id="yui_3_16_0_1_1444380613734_2641" class="link-enhancr-element link-enhancr-preview-by link-enhancr-mobile-no-resize" style="vertical-align:middle; font-size: 9px; line-height: 11px; color: #999999; -moz-text-size-adjust: none; -ms-text-size-adjust: none; -webkit-text-size-adjust:none; text-size-adjust:none;">Preview by Yahoo</span></div></td></tr><tr id="yui_3_16_0_1_1444380613734_2644"><td id="yui_3_16_0_1_1444380613734_2643" colspan="2" class="link-enhancr-element" style="height: 9px; background-color: #ffffff; font-size: 0pt; border-collapse: collapse;"><div id="yui_3_16_0_1_1444380613734_2642" class="link-enhancr-element" style="height: 9px; background-color: #ffffff; font-size: 9pt;"></div></td></tr><tr id="yui_3_16_0_1_1444380613734_2647" class="link-enhancr-element"><td id="yui_3_16_0_1_1444380613734_2646" class="link-enhancr-element" colspan="8" style="height: 1px; background-color: #e5e5e5; font-size: 1px; border-collapse: collapse;"><div id="yui_3_16_0_1_1444380613734_2645" class="link-enhancr-element" style="height: 1px; background-color: #e5e5e5; font-size: 1px; line-height:0px"> </div></td></tr></tbody></table></div><div id="yui_3_16_0_1_1444380613734_2537" dir="ltr">where it says "<br></div><div id="yui_3_16_0_1_1444380613734_2648" dir="ltr">Second, in the browser, Gruyere converts the JSON by using
Javascript's <code class="" id="yui_3_16_0_1_1444380613734_2518">eval</code>. In general, <code class="" id="yui_3_16_0_1_1444380613734_2520">eval</code> is very
dangerous and should rarely be used. If it used, it must be used very
carefully, which is hardly the case here. We should be using the JSON
parser which ensures that the string does not include any unsafe
content. The JSON parser is available
at <a class="" id="yui_3_16_0_1_1444380613734_2522" href="http://www.json.org/" target="_top">json.org</a>."</div><div id="yui_3_16_0_1_1444380613734_2649" dir="ltr"><br></div><div id="yui_3_16_0_1_1444380613734_2697" dir="ltr">So I'm wondering what does Dancer do? eval or uses a parser?<br></div></div></body></html>