外部APIとPOSTリクエストでやり取りしたい。
binbin4649 > 外部APIとPOSTリクエストでやり取りしたい。 @ 2015/3/25 20:38 |
---|
独自で用意したコントローラーのアクションに、
$this->autoRender = false; を設定し、XMLリクエストが帰るようにしています。 GETリクエストに対しては、希望通りXMLが返りますが、 POSTリクエストに対しては、404 NOT FOUND (type:auth)〜〜 と帰ってきます。 色々調べた限りでは恐らく、SecurityComponent が働いて404を返してると思うのですが、 これを特定のコントローラーだけ解除するようなやり方はないでしょうか? 試しに、アクションにこんなものを置いてみましたが、ダメでした。 $this->Security->enabled = false; 素のcakephpで動いていたコードをBaserに移植して、はまっております。 外部APIとやり取りすることは良くあることだと思うのですが、みなさんはどうやってますでしょうか? ■ BaserCMSのバージョン:3.0.7 ■ レンタルサーバー名:さくらサーバー VPS ■ スマートURLの利用: ON ■ 設置フォルダ: サブフォルダ ■ PHPスキル(自己評価): D ■ OSの種類:CentOS release 6.6 (Final) ■ PHPのバージョン:PHP 5.5.21 (cli) ■ データベース種類・バージョン:MySQL 5.5.39 |
binbin4649 > Re: 外部APIとPOSTリクエストでやり取りしたい。 @ 2015/3/26 10:04 |
---|
自己解決しました。
コントローラーにこれを置いたらできました。 Basercmsというより、cakephpの問題でした。お騒がせしました。 素のcakephpは、SecurityComponent使ってなかったので出来たんですね。 (後学のために) アクション毎に切り分けるには、以下のようにすれば良いようです。
|
n1215 > Re: 外部APIとPOSTリクエストでやり取りしたい。 @ 2015/3/26 23:41 |
---|
binbin4649 様
SecurityコンポーネントのcsrfCheckはCSRF攻撃への対策を行う設定です。 ローカルネットワークで動かしていたり他の認証や対策があったりする場合以外は CSRF対策トークンのチェックをオフにするのはおすすめしません。 脆弱性を作りこまないためにはPOSTの前にCSRF対策トークンを別枠で取得してくるなどの工夫が必要です。 Twitter: @n_1215 |