我正在使用AJAX开发Web /移动应用程序.该应用程序有4个页面:登录的一个和3个受保护的页面仅显示给登录的用户.
我打算使用单页应用程序模式,因此将立即加载所有4个页面,每个页面都在其自己的DIV ID中,并且最初只能看到登录页面.
一旦用户输入他的用户/通行证,我就创建了一个XMLHttpRequest并与内部PHP脚本进行通信,后者又使用预准备语句来检查数据库中是否存在用户/通道,并向XMLHttpRequest返回true或false.
如果结果为true,那么我将使受保护的DIV可见并从服务器加载必要的数据,创建另一个XMLHttpRequest并通过另一个PHP脚本与数据库连接.当用户在其他受保护页面之间导航时,重复此步骤.我还计划使用XMLHttpRequest /内部PHP脚本实现cookie以保持用户登录.
下面是描述该过程的图像.
问题:
>这个结构看起来不错吗?可能出现的任何问题我都没预见到?
>结构安全吗?我可以用任何方法进一步强化它吗?@H_502_15@
最佳答案@H_502_15@
只要您确保每个数据请求都受到登录系统的保护,该结构就可以了,以防止向未经身份验证的用户提供数据.
此外,您需要确保在用户注销时,将所有数据从DOM中清除.这可以通过强制页面刷新window.location.reload()或手动删除包含数据的所有DOM节点并覆盖任何变量来轻松完成.考虑使用您的应用程序的用户,然后注销,然后另一个用户来使用相同的设备.如果您在注销时不刷新数据,则未经身份验证的第二个用户可以打开任何DOM工具,例如Firebug / Chrome开发工具,并查看最后一个用户的敏感数据.
不要忘记关注sqli,XSS(包括基于DOM的XSS – 不仅仅是反射/存储的XSS)和会话安全(会话劫持等)方面的一般Web应用程序安全性.
@H_502_15@