【问题标题】:PHP Codeigniter - Prevent Direct URL Access Form SubmitPHP Codeigniter - 防止直接 URL 访问表单提交
【发布时间】:2017-02-10 04:11:44
【问题描述】:

有谁知道如何防止提交表单的直接 URL 访问?

所以我有这样的路线

$route['registration']=administration/register

当我输入时

localhost/myweb/registration

有一个数据库错误,确实是因为我们直接通过URL访问它而不提交表单。我已经在我的表单上成功设置验证以防止数据库错误,但这是为了防止用户提交我们的表单。当用户输入“注册”时,数据库错误。

好吧,对于一些工作和页面,我只是简单地将 SESSION 设置为 ADMIN 或 USER,以防止直接 URL 访问,但我们不能这样做,对吧?

注意:我的表单提交数据很好,我只是不知道如何防止用户输入“注册”作为提交执行的词

【问题讨论】:

  • 提供控制器的“注册”操作代码,以便您通过示例获得帮助。

标签: php codeigniter


【解决方案1】:

appliaction/config/routes.php 中管理您的路线。像这样

$route['registration']='administration/register';

这会将localhost/myweb/registration 重定向到localhost/myweb/administration/register

【讨论】:

  • 我不是这个意思。因此,当用户进行表单提交数据时,单击提交按钮,URL 将从“管理”(页面名称)变为“注册”。我的路线没有问题。所以“注册”这个词与提交按钮的功能相同,但通过 URL。我可以在表单为空时设置重定向用户的概念,但是如何将该概念放入控制器中
【解决方案2】:

要停止在 Codeigniter 中直接提交表单,您可以使用 CSRF 保护。

您所要做的就是在 application/config/config.php 中的 $config['csrf_protection'] 中启用它

$config['csrf_protection'] = TRUE;

并为您的表单使用 form_open() 函数。

这将阻止用户直接提交表单。

这里有一些澄清的链接, https://www.codeigniter.com/user_guide/libraries/security.html Codeigniter CSRF - how does it work

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多