私はcakephp2アプリケーションを持っていました。sslを追加しましたが、サイトにJavaScriptを使用してフィールドに入力されるフォームが1つあり、フォームはJavaScriptを使用して送信されます。セキュリティコンポーネントを有効にした後、サイトを送信できません。その理由は、このフォームではフォームヘルパーを一部使用していないためです。特定のメソッドのセキュリティコンポーネントをバイパスする方法があると確信しています。多くの方法を試しましたが、機能しません。
以下はコードです。
app / controller / appcontroller.php
class AppController extends Controller {
public $components = array('Session',
'Auth'=> array(
'authenticate' => `array('Form' =>array('fields'=>array('username' => 'email'))))`,
'Acl' ,
'Email' => array('from' => 'donotreply@qpaper.in', 'sendAs' => 'html',
)
,'Security'=> array( 'allowedControllers'=>array('tests','live_tests'),'allowedActions'=>array('taketest','create_test'))
);
public $helpers = array('Html', 'Form','Session','Js');
function beforeFilter() {
Security::setHash('md5');
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginError = 'Invalid Username or Password.';
$this->Auth->authError = "You are not authorized to access.";
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
$this->Auth->authorize = 'Actions';
$this->Auth->actionPath = 'Controllers/';
$this->Security->blackHoleCallback = 'forceSSL';
$this->Security->requireSecure();
}
public function forceSSL() {
$this->redirect('https://' . env('SERVER_NAME') . $this->here);
}
}
appcontrollerでhttpsを強制しました
私が使用したいフォームは、testcontrollerと呼ばれるコントローラーとtestと呼ばれるメソッドにあります
お時間をいただきありがとうございます!