我正在编写一个插件,修改上传帖子文件或媒体库时的默认行为。我正在wp\\u handle\\u upload()中使用自定义$unique\\u filename\\u回调设置$覆盖。
我添加后,它在wp\\u handle\\u upload()中触发了以下检查,因为没有设置$\\u POST[\'action\']。(我不知道为什么不是,但不是)。
if ( $test_form && (!isset( $_POST[\'action\'] ) || ($_POST[\'action\'] != $action ) ) )
return call_user_func($upload_error_handler, $file, __( \'Invalid form submission.\' ));
因此,我将$overrides[\'test\\u form\']=设置为false,现在它开始工作了。不过,我想知道这是否可能是一个潜在的安全问题。这会允许某人从远程源发布表单吗?
当你创建自己的上传字段时,禁用它似乎是正常的,但我使用的是内置的上传后表单,所以我想确定一下。
最合适的回答,由SO网友:TheDeadMedic 整理而成
我不会说安全问题,因为您在管理员中使用此插件(我假定在用户经过身份验证之后,即admin_init
), 那么你已经有了保护措施,可以防止Jon Doe在你的脚本中发布表单。
它提供的是一个额外的身份验证层。归根结底,它只是在表单中发送一个“秘密”,然后在继续之前检查它是否存在(以及是否匹配)。
对于攻击者来说,他们需要知道这个秘密才能破解,例如使用CSRF 或XSS.
这就是为什么WordPress nonces 工作事实上你用这些会更好instead of test\\u表单。它们更进一步,因为它们是expire, 因此,攻击者的窗口变得更小。
退房Jaquith\'s article on Nonces.