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

时间:2013-02-28 17:09:54

标签: php javascript ajax security xmlhttprequest

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

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

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

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

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

问题

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

enter image description here

1 个答案:

答案 0 :(得分:4)

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

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

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