AJAX(Asynchronous JavaScript and XML)是一种在用户与网页交互时,通过在后台与服务器交换少量数据来提升网页响应性的技术。它使得整个网页不必在每次用户操作时都重新加载,从而增强了网页的交互性、速度和可用性。
人们选择AJAX的原因多种多样。在过去的几年中,同步方法让用户感到厌烦,因为它们让用户等待服务器响应,而在此期间用户无法访问用户界面的任何部分。AJAX的引入是为了克服同步调用方法的局限性。需要了解同步和异步调用方法的区别。
“同步调用”类似于点击按钮后,请求被发送到服务器并等待响应,在此期间无法访问用户界面的任何部分。“异步调用”则允许在访问用户界面的其他部分时发起另一个请求。
与传统的Web应用程序相比,AJAX具有更好的性能、更有效的带宽使用、更容易与DOM对象交互、无需页面刷新、单个屏幕可以处理多个任务,因此不需要多个页面。
网络是黑客获取敏感数据的场所。因此,设计网站时应尽量避免被黑客攻击的机会。在AJAX中,面临一些问题:
注入攻击可能发生在以下情况:
JSON是一种简单有效的轻量级数据交换格式,它包含对象、数组、哈希表、向量和列表数据结构。JSON被JavaScript、Python、C、C++、C#和Perl语言支持。JSON的序列化是Web 2.0应用程序中非常有效的交换机制。开发者经常选择JSON而不是AJAX来获取和传递DOM所需的信息。
JavaScript {
"favourites": [{
"URL": "www.codeproject.com",
"Visits": "1200",
"Shortcut Key": "Control+w"
}]
}
如果URL或快捷键被注入恶意脚本,并且注入到DOM并执行,它就属于XSS类别。这是将恶意内容序列化到最终用户的一种方式。
JavaScript数组是另一个非常受欢迎的序列化对象。它易于跨平台传输,并且在跨语言框架中非常有效。JavaScript数组中毒会破坏DOM上下文。JavaScript数组可以被简单的跨站脚本攻击利用。
JavaScript new Array("DesktopPC", "DELL", "Used", "400$", "It is a used one")
这个数组被一个拍卖网站用于一个二手台式电脑。如果这个数组对象在服务器端没有得到适当的清理,用户可以在最后一个字段注入脚本。这种注入可能会破坏浏览器,并可能被攻击者利用。
AJAX无法从浏览器访问跨域。所有浏览器版本都存在的一个浏览器安全特性是阻止跨域访问。有许多Web服务提供了对象序列化的回调机制。开发者可以使用这个回调机制将Web服务集成到浏览器本身。回调函数名称可以被传回,以便一旦回调对象流被浏览器检索,它就由浏览器最初传回的特定函数名称执行。