auth.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. require_once ($_SERVER['DOCUMENT_ROOT']."/inc/auth.utils.php");
  3. login($db_link);
  4. if (!empty($_GET['redirect'])) {
  5. // Очищаем и проверяем URL
  6. $redirect = trim($_GET['redirect']);
  7. // Удаляем все слеши в начале, чтобы избежать дублирования
  8. $redirect = ltrim($redirect, '/');
  9. // Проверяем, что URL не ведет на другой домен и не содержит опасных символов
  10. if (preg_match('/^[a-zA-Z0-9\-_\/\.]+$/', $redirect) &&
  11. strpos($redirect, '..') === false &&
  12. strpos($redirect, '//') === false) {
  13. // Проверяем, что текущий URL не совпадает с целевым
  14. $currentPath = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
  15. $currentPath = ltrim($currentPath, '/');
  16. if ($currentPath !== $redirect) {
  17. header('Location: /' . $redirect);
  18. exit;
  19. }
  20. }
  21. // Если проверки не прошли - игнорируем
  22. }
  23. $start_time = microtime();
  24. $start_array = explode(" ",$start_time);
  25. $start_time = $start_array[1] + $start_array[0];
  26. $page_full_url=$_SERVER['PHP_SELF'];
  27. $page_url_array = explode('?', $page_full_url);
  28. $page_url=$_SERVER["REQUEST_URI"];
  29. if (!empty($page_url_array[0])) { $page_url = $page_url_array[0]; }
  30. if (!empty($page_url_array[1])) { $page_url_args = $page_url_array[1]; } else { $page_url_args=''; }
  31. if (!empty($_GET['id'])) { $id = $_GET["id"]; }
  32. if (!empty($_POST['id'])) { $id = $_POST["id"]; }
  33. if (!empty($id) and !empty($page_url)) { $page_url = $page_url.'?id='.$id; }
  34. if (empty($page_url)) {
  35. header("Location: /admin/index.php");
  36. exit;
  37. }
  38. if (isset($_GET['page'])){ $page = $_GET['page']; }
  39. if (isset($_POST['page'])){ $page = $_POST['page']; }
  40. if (!isset($page) and isset($_SESSION[$page_url]['page'])) { $page=$_SESSION[$page_url]['page']; }
  41. if (!isset($page)) { $page=1; }
  42. if (!isset($default_displayed)) { $default_displayed=50; }
  43. if (isset($_POST['rows'])) { $displayed=$_POST['rows']; }
  44. if (!isset($displayed) and isset($_SESSION[$page_url]['rows'])) { $displayed=$_SESSION[$page_url]['rows']; }
  45. if (!isset($displayed)) { $displayed=$default_displayed; }
  46. $_SESSION[$page_url]['page']=$page;
  47. $_SESSION[$page_url]['rows']=$displayed;
  48. ?>