public static function generateSignature($addendum = false) {
if($addendum == false) $addendum = time();
if(!isset($_SESSION['mdsign'])) {
$_SESSION['mdsign'] = md5(uniqid(rand(), true) ."|". mt_rand() ."|". $addendum);
$_SESSION['mdsign_timestamp'] = time();
}
}
/**
* Get the signature saved in session or generate a new signature if needed
* @return string
*/
public static function getSignature($for_link = false) {
if(!isset($_SESSION['mdsign'])) Util::generateSignature();
if($for_link) return 'authentic_request='.$_SESSION['mdsign'];
return $_SESSION['mdsign'];
}
/**
* Check if the signature attached to the page request is valid, user in order to detect foreigns requests
*/
public static function checkSignature() {
//signature from a post or get
$authentic_request = Get::req('authentic_request', DOTY_STRING, '');
// signature from a ajax request
if(!$authentic_request && isset($_SERVER['HTTP_X_SIGNATURE'])) $authentic_request = $_SERVER['HTTP_X_SIGNATURE'];
if(!isset($_SESSION['mdsign'])
|| $authentic_request != $_SESSION['mdsign']
) {
// Invalid request
if (!defined('IS_AJAX')) {
Util::jump_to(Get::rel_path('lms').'/index.php?modname=login&op=logout&msg=101');
}
Util::fatal('Security issue, the request seem invalid ! Try a new login and retry.');
}
}
Il problema a quanto pare è che oltre a un controllo sulla signature c'è anche un controllo sulla sessione, per cui anche aprendola sulla pagina di login, non è la stessa che aprirebbe docebo, quindi in linea di massima non può funzionare su due server diversi.
Nel tuo caso, se la pagina di login è sulla stessa istanza di apache della piattaforma (così pare) potrebbe funzionare una cosa del genere:
ps
in ogni caso non lavora, neanche nella root dove si trova l'index originale.
L'unica soluzione è disabilitare il controllo che fa, anche se perdo in sicurezza.
public static function checkSignature() {
/*
//signature from a post or get
$authentic_request = Get::req('authentic_request', DOTY_STRING, '');
// signature from a ajax request
if(!$authentic_request && isset($_SERVER['HTTP_X_SIGNATURE'])) $authentic_request = $_SERVER['HTTP_X_SIGNATURE'];
//die(var_dump($_SESSION['mdsign']));
if(!isset($_SESSION['mdsign'])
|| $authentic_request != $_SESSION['mdsign']
) {
// Invalid request
if (!defined('IS_AJAX')) {
Util::jump_to(Get::rel_path('lms').'/index.php?modname=login&op=logout&msg=101');
}
Util::fatal('Security issue, the request seem invalid ! Try a new login and retry.');
}*/
}
public static function checkSignature() {
//signature from a post or get
$authentic_request = Get::req('authentic_request', DOTY_STRING, '');
// signature from a ajax request
if(!$authentic_request && isset($_SERVER['HTTP_X_SIGNATURE'])) $authentic_request = $_SERVER['HTTP_X_SIGNATURE'];
/* if(!isset($_SESSION['mdsign'])
|| $authentic_request != $_SESSION['mdsign']
) {
// Invalid request
if (!defined('IS_AJAX')) {
Util::jump_to(Get::rel_path('lms').'/index.php?modname=login&op=logout&msg=101');
}
Util::fatal('Security issue, the request seem invalid ! Try a new login and retry.');
}*/
}
Per la precisione ho commentato solo questo pezzo:
forma.association Via Molineria San Giovanni 10/A 29100 Piacenza (PC) - ITALY C.F. 91116870337
This site uses cookies.
Some of the cookies we use are essential for parts of the site to operate and have already been set. We also use Google Analytics scripts, which all use cookies.
You may delete or block all cookies from this site in your browser options.