频繁更新瞬态值 时间:2019-10-24 作者:wordpress user 从概念上讲,频繁更新瞬态值可以吗。我正在建立登录表单&;每次用户输入无效凭据时,存储不正确的尝试。因此,我使用的是用户IP地址&;使用数组值创建一个键,如“login\\u data\\u IPXXX”。除了错误的尝试之外,我还想存储更多的信息。在此之前,我将其存储在会话密钥中;发现WP中不应使用会话。然后我考虑使用瞬态,因为该值会频繁更新&;是临时数据,我不知道是否应该使用瞬态数据。如果没有,应该使用什么替代?饼干在这里也不合适。 1 个回复 最合适的回答,由SO网友:Tom J Nowell 整理而成 对于您的用例,no.Using PHP sessions - 不会在大多数主机上工作,并且将使该数据仅对浏览器和当前PHP请求可用。这严重限制了其用途Using Cookies - 将在任何地方都能工作,但有一个相同的问题,即您无法持久化服务器端或跟踪内容Using transients - 在某种程度上,您将在选项表中为每个访问者设置一行,这是问题的症结所在。瞬态也会被垃圾收集,而且您所做的每一次更新都有可能触发一个新的选项行和一个旧的瞬态进行清理。从根本上讲,在单个单元中存储数据集合的方法是有缺陷的,而收集额外的数据(如单击)和所使用的详细信息将导致更多的问题,并且在大多数情况下是完全无效的:由于隐私问题,存在法律纠纷由于密码拼写错误1个字符会在日志中显示用户密码存储IP和用户名意味着您存储了可识别信息,这意味着您必须担心是否遵守GPDR等数据保护法律,大多数失败的登录尝试都来自机器人程序,因此不会有任何点击,甚至可能没有浏览器。他们将绕过登录页面直接打开直接请求到处理程序,并检查响应是否成功。机器人甚至不检查你是否在运行WordPress,并且不分青红皂白地启动WP/Drupal/Joomla漏洞攻击和登录尝试,失败的登录尝试可能会迅速失控,即使是小流量的网站也会收到数百次甚至数千次的尝试。如果将每个访问者存储在一个选项或瞬态中,那么可能会有数百或数千个额外的表行。您可以为自己构建一个资源耗尽漏洞,因此,我建议您:跟踪尽可能少的信息,也就是IP及其尝试次数,可能只是一个可以计数的时间戳列表,可以将其存储在单个选项中,自动加载设置为false,这样不会降低站点速度,也可以使用专用表 文章导航