فهرست منبع

Preventing admin to do loginas action without token

Anton Reutov 4 سال پیش
والد
کامیت
1ff5208968
1فایلهای تغییر یافته به همراه7 افزوده شده و 0 حذف شده
  1. 7 0
      web/login/index.php

+ 7 - 0
web/login/index.php

@@ -16,6 +16,13 @@ if (isset($_GET['logout'])) {
 
 
 // Login as someone else
 // Login as someone else
 if (isset($_SESSION['user'])) {
 if (isset($_SESSION['user'])) {
+    if ((!isset($_GET['token'])) || ($_SESSION['token'] != $_GET['token'])) {
+        session_destroy();
+        session_start();
+        header('Location: /login/');
+        exit();
+    }
+    
     if ($_SESSION['user'] == 'admin' && !empty($_GET['loginas'])) {
     if ($_SESSION['user'] == 'admin' && !empty($_GET['loginas'])) {
         exec (VESTA_CMD . "v-list-user ".escapeshellarg($_GET['loginas'])." json", $output, $return_var);
         exec (VESTA_CMD . "v-list-user ".escapeshellarg($_GET['loginas'])." json", $output, $return_var);
         if ( $return_var == 0 ) {
         if ( $return_var == 0 ) {