直接网址&删除确认表单

时间:2016-12-05 23:02:55

标签: php security userfrosting

我正在寻求实施删除确认表的最佳做法建议。

以下页面以及其他选项包含删除按钮...

/website/features/f/123

...点击后,一个简单的表格会被加载到以下网址:

/website/features/f/delete/123

用户必须在简单的删除确认表中确认删除。完成'检查以确认' 复选框后,删除按钮将启用。

一切都很好,但是我担心提供删除选项的直接网址可能会导致......比如,可以避免的情况。

有没有更好的方法来处理这种情况?也许引用验证?

3 个答案:

答案 0 :(得分:3)

最常见的情况可以避免"是:

答案 1 :(得分:2)

实际上删除某些内容应该要求用户登录该站点,并且您应该检查该用户是否具有实际删除某些内容的必要权限。如果您的用例允许可以公开删除某些内容,那么如果确认是否被检查则无关紧要(想想巨魔)。如果您的用户有权删除某些内容,那么除非在URL中输入错误内容,否则应该没有任何问题。

为避免这种情况,您还可以实现DELETE http请求(想想REST)。权限和DELETE的组合应该足以避免绕过确认对话框。

另一种解决方案可能是实现验证令牌。确认对话框生成需要由删除操作验证的秘密令牌。

答案 2 :(得分:1)

我实现了我最初的推荐理念。但一如既往,我愿意接受建议和建设性的批评。

if(empty($_SERVER['HTTP_REFERER'])) $this->_app->redirect('/website/features', 302);

请注意,这是基于slim的重定向。