AJAX:单页应用程序结构/安全性

Dan*_*cco 5 javascript php security ajax xmlhttprequest

我正在使用AJAX开发Web /移动应用程序.该应用程序有4个页面:登录的一个和3个受保护的页面仅显示给登录的用户.

我打算使用单页应用程序模式,因此将立即加载所有4个页面,每个页面都在其自己的DIV ID中,并且最初只能看到登录页面.

一旦用户输入他的用户/通行证,我就创建了一个XMLHttpRequest并与内部PHP脚本进行通信,后者又使用预准备语句来检查数据库中是否存在用户/通道,并向XMLHttpRequest返回true或false.

如果结果为true,那么我将使受保护的DIV可见并从服务器加载必要的数据,创建另一个XMLHttpRequest并通过另一个PHP脚本与数据库连接.当用户在其他受保护页面之间导航时,重复此步骤.我还计划使用XMLHttpRequest /内部PHP脚本实现cookie以保持用户登录.

下面是描述该过程的图像.

问题:

  • 这个结构看起来不错吗?可能出现的任何问题我都没预见到?
  • 结构安全吗?我可以用任何方法进一步强化它吗?

在此输入图像描述

MrC*_*ode 4

只要确保每个数据请求都受到登录系统的保护,以防止向未经身份验证的用户提供数据,该结构就可以。

此外,您还需要确保当用户注销时,将所有数据从 DOM 中清除。这可以通过强制页面刷新window.location.reload()或手动删除所有包含数据的 DOM 节点并覆盖任何变量来轻松完成。考虑一个用户使用您的应用程序,然后注销,然后另一个用户开始使用同一设备。如果您在注销时不刷新数据,则未经身份验证的第二个用户可以打开任何 DOM 工具(例如 Firebug/Chrome 开发工具)并查看最后一个用户的敏感数据。

不要忘记关注 SQLi、XSS(包括基于 DOM 的 XSS - 不仅仅是反射/存储的 XSS)和会话安全(会话劫持等)方面的一般 Web 应用程序安全性。