元刷新重定向是不是“安全”

Posted

技术标签:

【中文标题】元刷新重定向是不是“安全”【英文标题】:Is Meta Refresh Redirect "Secure"元刷新重定向是否“安全” 【发布时间】:2018-08-08 18:45:09 【问题描述】:

如果用户阻止 javascript,我有一行代码可以将用户从 index.php 重定向到 enable-js.php

<noscript><meta http-equiv="refresh" content="0;url=enable-js.php"></noscript>

由于这是客户端重定向,用户是否仍然可以访问index.php 以在禁用 javascript 的情况下填写表单,或者我应该找到一种方法来实现 PHP headers代替?

【问题讨论】:

他们可以在这种情况下启用 javascript 并在 index.php 上填写表格,如果这就是您的意思 我的意思是如果他们仍然禁用 javascript...我会编辑问题 可以在 DOM 已加载(无需刷新)之后关闭 JavaScript,所以是的,可以绕过您的 &lt;noscript&gt; 并且仍然打开 JavaScript离开。但是,我不太确定您首先要尝试做什么,这听起来像是XY problem “在禁用 javascript 的情况下执行诸如填写表格之类的操作” - 我的解释是否正确,因为您认为通过 JavaScript 验证您的数据客户端是够了,只要你让“非 JS”用户远离表单......?如果您期望到达您的服务器端脚本的任何请求都必须来自诸如“浏览器”之类的东西,那真是太天真了。 【参考方案1】:

由于这是一个客户端重定向,用户是否仍然可以访问 index.php 以执行诸如填写表单之类的操作,或者我应该找到一种方法来实现 PHP 标头?

是的。他们可以通过 cURL 编写脚本(根本不会处理元刷新)、取消导航(例如通过非常快速地按下退出键)或 disable meta refresh in the browser entirely。

【讨论】:

以上是关于元刷新重定向是不是“安全”的主要内容,如果未能解决你的问题,请参考以下文章

html HTML元刷新重定向

html HTML模板:客户端重定向(元刷新)

HTML HTML元刷新重定向页面 - 元http-equiv缓存控制pragma刷新

PHP:CURL 可以跟随元重定向

@nuxtjs/auth 为啥刷新页面总是重定向到登录

输出表单提交成功到页面而不是重定向