forked from GNUsocial/gnu-social
Redirect to https when making an http request for a sensitive action
This commit is contained in:
parent
3593f3f132
commit
90c87553ee
@ -62,28 +62,6 @@ class LoginAction extends Action
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare page to run
|
||||
*
|
||||
*
|
||||
* @param $args
|
||||
* @return string title
|
||||
*/
|
||||
|
||||
function prepare($args)
|
||||
{
|
||||
parent::prepare($args);
|
||||
|
||||
// @todo this check should really be in index.php for all sensitive actions
|
||||
$ssl = common_config('site', 'ssl');
|
||||
if (empty($_SERVER['HTTPS']) && ($ssl == 'always' || $ssl == 'sometimes')) {
|
||||
common_redirect(common_local_url('login'));
|
||||
// exit
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle input, produce output
|
||||
*
|
||||
|
@ -74,13 +74,6 @@ class RegisterAction extends Action
|
||||
parent::prepare($args);
|
||||
$this->code = $this->trimmed('code');
|
||||
|
||||
// @todo this check should really be in index.php for all sensitive actions
|
||||
$ssl = common_config('site', 'ssl');
|
||||
if (empty($_SERVER['HTTPS']) && ($ssl == 'always' || $ssl == 'sometimes')) {
|
||||
common_redirect(common_local_url('register'));
|
||||
// exit
|
||||
}
|
||||
|
||||
if (empty($this->code)) {
|
||||
common_ensure_session();
|
||||
if (array_key_exists('invitecode', $_SESSION)) {
|
||||
|
@ -283,6 +283,14 @@ function main()
|
||||
return;
|
||||
}
|
||||
|
||||
$site_ssl = common_config('site', 'ssl');
|
||||
|
||||
// If the request is HTTP and it should be HTTPS...
|
||||
if ($site_ssl != 'never' && !StatusNet::isHTTPS() && common_is_sensitive($args['action'])) {
|
||||
common_redirect(common_local_url($args['action'], $args));
|
||||
return;
|
||||
}
|
||||
|
||||
$args = array_merge($args, $_REQUEST);
|
||||
|
||||
Event::handle('ArgsInitialize', array(&$args));
|
||||
|
Loading…
Reference in New Issue
Block a user