コントローラーでHTTPメソッド別名リクエストメソッド(get / post / put ...)を知るためのCodeigniterの組み込み機能はありますか? 私は次のようなものだと思います:
if ( ! $this->input->is_post() ) show_error('Access forbidden', 403 );
後入力が必要な関数でGETメソッドへのアクセスを禁止したい。この単純なことについて、ドキュメントで何かを見つけることができません。
コントローラーでHTTPメソッド別名リクエストメソッド(get / post / put ...)を知るためのCodeigniterの組み込み機能はありますか? 私は次のようなものだと思います:
if ( ! $this->input->is_post() ) show_error('Access forbidden', 403 );
後入力が必要な関数でGETメソッドへのアクセスを禁止したい。この単純なことについて、ドキュメントで何かを見つけることができません。
これを試して:
if($_SERVER['REQUEST_METHOD'] == 'GET'){
exit();
}
//continue with your code. it's a POST.
このように試すことができます:
if($this->input->server('REQUEST_METHOD') == 'POST'){
show_error('Access forbidden', 403 );
}
通常の状況では、次のように使用できます
if($_SERVER['REQUEST_METHOD'] == 'GET')
//abort
または、このための CI ヘルパーを作成できます。
投稿を防止したい場合は、if 条件で文字列 'POST' を使用します。これはまっすぐです。
不審な状況下で投稿を阻止したい場合(リクエストメソッドが操作できると思われる場合)
注:私は以下を使用していません。これは私の即時のアイデアです。http 生入力データをチェックします。
$rawdata = file_get_contents('php://input');
strlen がゼロより大きいかどうかを確認するか、ここにロジックを追加できます。
codeigniter のみを使用してこれを解決しようとしていないと仮定します。