阻止GET访问某些URI

时间:2013-09-01 16:30:42

标签: php codeigniter

Codeigniter中是否有内置功能,以便在控制器中了解HTTP方法又称请求方法(get / post / put ...)? 我想像是这样的事情:

if ( ! $this->input->is_post() ) show_error('Access forbidden', 403 );

我想禁止在需要后置输入的函数中访问GET方法。我在文档中找不到关于这个简单事情的东西。

3 个答案:

答案 0 :(得分:2)

试试这个:

if($_SERVER['REQUEST_METHOD'] == 'GET'){
    exit();
}
//continue with your code. it's a POST.

答案 1 :(得分:1)

在正常情况下,您可以像以下一样使用

if($_SERVER['REQUEST_METHOD'] == 'GET')
//abort

或者你可以为此创建一个CI助手。

  

如果你想阻止帖子,那么在if条件下使用字符串'POST'。就是这样   前进。

在可疑情况下,如果您想要阻止发帖(如果您认为可以操纵请求方法)

注意:我没有使用以下内容,这只是我的想法。 检查http原始输入数据。

$rawdata = file_get_contents('php://input');

可能是你可以检查大于零的strlen ... 或者在这里添加你的逻辑。

假设您不打算仅使用codeigniter解决此问题

答案 2 :(得分:1)

您可以尝试这样:

if($this->input->server('REQUEST_METHOD') == 'POST'){
    show_error('Access forbidden', 403 );
}