使用Codeigniter,我从url调用[我的控制器]的公共函数,这基本上是框架的正常行为。我将3个参数作为$a, $b, $c
传递,当函数执行时,它会检查参数并根据它进行操作。现在,问题是我不希望从url调用我的函数,当它被调用时应该转到404页面。
我知道这可以通过添加private
或protected
来实现,但真正的问题是它应该只通过我自己的其他函数访问,而不是通过直接URL访问。
欢迎任何解决方案。
HTTP路由块有效。但是当我传递参数时,函数会被执行,这是一个安全问题。知道如何阻止访问吗?
答案 0 :(得分:2)
您可以使用路由阻止任何到该控制器/方法的http流量,并重定向到404页面。
在config文件夹的routes.php
文件中,添加以下内容
$route['controller/private_method'] = '{your 404 controller}';
$route['controller/private_method/(:any)'] = '{404 controller}';
第二条规则适用于任意数量的参数。
答案 1 :(得分:1)
为什么不将hidden secret variable
传递给identify
calling this function
并且不会从URL
调用。