Advertisement
Guest User

Untitled

a guest
Oct 27th, 2018
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.13 KB | None | 0 0
  1. <?php
  2. //
  3. function validate_proverka($check)//? проверка sql инекции aka middelware ~by hlop
  4. {
  5.  
  6. $deny_words = array("union", "char", "select", "update", "group", "order", "benchmark", "where", "from", "load_file", "grt24_articles", "into", "outfile", "drop");
  7. str_replace($deny_words, "", strtolower($check), $count); // (что ищем, если найдем - на что заменим, где ищем(фильтруемая переменная), сколько раз нашли и заменили)
  8. if ($count > 0) {
  9. exit('SQL - inj');// Если было найдено хоть одно "запретное" слово, что произойдет остановка скрипта с текстом ошибки
  10. }
  11. //* " ' ` . , $
  12. if (strpos($check, '%') !== false || strpos($check, '`') !== false || strpos($check, '$') !== false || strpos($check, '"') !== false || strpos($check, "'") !== false || strpos($check, ".") !== false) {
  13. exit('SQL - inj');
  14. }
  15.  
  16. return $check;
  17. }
  18.  
  19.  
  20. function generateRandomString() //? генератор очка хлопа
  21. {
  22. $characters = '0123456789abcdefghijklmnopqrstuvwxyz';
  23. $charactersLength = strlen($characters);
  24. $randomString = '';
  25. $size_random = 20; // ?20 - размер рандомной строки by hlop
  26. for ($i = 0; $i < $size_random; $i++) //? by hlop
  27. {
  28. $randomString .= $characters[rand(0, $charactersLength - 1)];
  29. }
  30. return $randomString;
  31. }
  32. function sectotime($seconds) //? функция перевода секунд в дни
  33. {
  34. $dt1 = new \DateTime('@0');
  35. $dt2 = new \DateTime("@$seconds");
  36. return $dt1->diff($dt2)->format('%a');
  37. }
  38.  
  39. //
  40.  
  41.  
  42. $servername = "localhost";//? адрес бд
  43. $username = "o925268f_1"; //? юзернейм бд
  44. $password = "o925268f_1"; //? пароль бд
  45. $dbname = "o925268f_1"; //? имя бд
  46. $date1 = date('d.m.o'); //? получение локального времени с бд типа 2018.31.12
  47. $hwid = validate_proverka(mb_strtolower($_GET['hwid'])); //? инпут by hlop
  48. $key = validate_proverka(mb_strtolower($_GET['key']));//? инпут by hlop
  49. if ($_SERVER['HTTP_HOST'] != "hostaut.tk") //? проверка на хост (от подмены в host)
  50. {
  51. die("die"); //? сброс подключения и вывод die
  52. } else {
  53.  
  54.  
  55.  
  56.  
  57. //? Create connection
  58. if (empty($hwid )) //? если в запросе не содержется hwid
  59. {
  60. die("die");
  61. } else {
  62. $conn = new mysqli($servername, $username, $password, $dbname);//?коненкт к сак'ю'эль
  63. if ($conn->connect_error) {
  64. die("die");
  65. }
  66.  
  67. $sql = "SELECT * FROM users WHERE hwid = '$hwid'";//?выбор строки в которой есть хвид
  68. $result = $conn->query($sql);
  69.  
  70. if ($result->num_rows > 0) //? Если кол-во юзеров с хвидом больше 0
  71. {
  72.  
  73. $BDUkey = $result->fetch_assoc();
  74. $Key_data = $BDUkey["keydate"];
  75. $BDUkey = $BDUkey["key"]; //? запись в переменную ключа юзверя из бд
  76. if ($hwid){
  77. if (strtotime($date1) < strtotime($Key_data)) //?если время хоста меньше времени окончания подписки то...
  78. {
  79. echo sectotime(strtotime($Key_data) - strtotime($date1));
  80. }
  81. else
  82. {
  83. $sql = "UPDATE `o925268f_1`.`users` SET `key` = `` WHERE `users`.`hwid` = '$hwid'"; //? удалить ключь
  84.  
  85. $conn->query($sql);
  86. die("outdatesub");
  87. }
  88. }
  89. } else { //! BUG
  90. //TODO: проверка хвида на наличие sql команды
  91. $sql = "INSERT INTO users (hwid) VALUES ('$hwid')";
  92. if ($conn->query($sql) === true) {
  93. die("added");
  94.  
  95. } else {
  96. die("error");
  97. }
  98. $conn->close();
  99. }
  100. }
  101. }
  102. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement