Php 当使用弹出模式进行会话超时时,如何确保敏感数据的安全?

Php 当使用弹出模式进行会话超时时,如何确保敏感数据的安全?,php,security,session,modal-dialog,timeout,Php,Security,Session,Modal Dialog,Timeout,在会话超时时使用弹出模式时,是否有安全的方法隐藏以前通过PHP注入页面的数据?有人向我指出,使用模糊屏幕的覆盖是不够安全的,因为未经授权的用户可以简单地从登录用户停止的地方开始,并通过任何数量的工具检查html 在这种情况下,是否有任何方法可以确保敏感数据的安全,同时在用户超时时将其保留在当前页面上?将用户重定向到常规登录页面已被排除,否则我会这样做 您询问是否可以修改已经通过PHP加载的页面,PHP是一种在服务器上运行的语言和上下文,而不是在客户端上运行。那么,简单的答案是否定的。您可以(重新

在会话超时时使用弹出模式时,是否有安全的方法隐藏以前通过PHP注入页面的数据?有人向我指出,使用模糊屏幕的覆盖是不够安全的,因为未经授权的用户可以简单地从登录用户停止的地方开始,并通过任何数量的工具检查html


在这种情况下,是否有任何方法可以确保敏感数据的安全,同时在用户超时时将其保留在当前页面上?将用户重定向到常规登录页面已被排除,否则我会这样做

您询问是否可以修改已经通过PHP加载的页面,PHP是一种在服务器上运行的语言和上下文,而不是在客户端上运行。那么,简单的答案是否定的。您可以(重新)加载一个全新的页面,或者必须使用Javascript/API调用来执行所需的详细信息

@Conceptz已经指出,通过重定向到
logout.php
,您可以使所有cookie等无效,但我相信您只需要客户端的详细信息:如何清除DOM,直到采取适当的操作。鉴于此,您的解决方案将以Javascript的形式涉及客户端帮助

那么,要真正回答这个问题,快速、肮脏、不专业的方法在道德上等同于

document.body.innerHTML = '';
这是从轨道接近它的核武器,但会起作用。任何比这更激烈的操作都需要迭代所有敏感的DOM元素,并用伪内容或伪内容替换内容。同样,所有客户端都使用Javascript。没有PHP

如果您绝对必须使用PHP,那么一个选项是使用API调用从服务器获取更新的空HTML片段,并使用响应替换敏感数据,但同样,仍然使用Javascript进行调用,并且仍然使用Javascript替换实际的DOM元素

如果您决定在Javascript中进行清除/替换(以避免重新加载页面),那么不要忘记所有DOM编辑最初来自哪些变量——这取决于攻击者的动机,JS变量是获取敏感数据的极好方法。对于每个敏感变量和数据结构,您需要执行以下道德等效操作:

sensitive_variable = null;

综上所述,如果您使用的是具有数据绑定的现代框架,“清除所有敏感的DOM元素”,如果您只更新或清除敏感的JS变量,“清除所有敏感的DOM元素”就可以完全省略。

在超时时强制注销我有一个无法共享的解决方案,很遗憾,但前提很简单。。我检查用户在过去10分钟内是否没有移动鼠标或单击任何键,然后显示一个弹出窗口,告诉他们有1分钟时间单击“我还在这里!”。如果他们在1分钟内没有点击,它将对我的logout.php页面进行javascript定位。此页面包含销毁会话、cookie所需的所有内容。在主页上,只需检查是否有活动会话,如果没有,则强制重定向。这将防止在用户注销后使用“上一步”按钮获取保存的数据。谢谢,但我实际上正在寻找一种解决方案,该解决方案在用户注销时不会将用户转到单独的页面。您可以将注销呼叫添加到超时,而不是位置呼叫。我使用PHP会话是因为无论是否启用JS,我的系统都需要管理内容。