Advanced Bans със SQL

Въпроси и проблеми свързани с AMXModX.
Аватар
Maverick
Извън линия
Рекламатор
Рекламатор
Мнения: 254
Регистриран на: 22 Окт 2016, 17:05
Местоположение: 93.123.18.81:27017
Се отблагодари: 34 пъти
Получена благодарност: 14 пъти
Обратна връзка:

Advanced Bans със SQL

Мнение от Maverick » 02 Фев 2018, 13:01

JustyleR ми помогна за едитването на php скрипта и резултата е почти желания. http://awesomecs.syntrwave.com/bans.php
Бих искал да разбера сега има начин да се показват само активните банове в тази таблица?
https://pastebin.com/v7FkQPJL

Аватар
sianbg
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 13 Ное 2017, 12:18
Получена благодарност: 1 път
Обратна връзка:

Advanced Bans със SQL

Мнение от sianbg » 02 Фев 2018, 17:10

Първо като съвет. Никога не си оставяй данните за mysql така. Това, че си сменил паролата не означава, че не даваш прекалено много информация. Вече ти знам ip-то, името на базата данни и, че отдалечена връзка е отворена за всички :) Не си ограничил да се свързва само от 1 ip. Така с тази информация ще намаля неизвестните до 1. Само паролата е неизвестно. Просто съвет.

Като програмист и имам голям опит на тема сигурност. Това

Код за потвърждение: Избери целия код

  echo '
  <tr>
  </tr>
   <tr>
   <td class="tg-yw4l">'.$rw['id'].'</td>
   <td class="tg-yw4l">'.$rw['victim_name'].'</td>
   <td class="tg-yw4l">'.$rw['victim_steamid'].'</td>
   <td class="tg-yw4l">'.$rw['banlength'].'</td>
   <td class="tg-yw4l">'.$rw['unbantime'].'</td>
   <td class="tg-yw4l">'.$rw['reason'].'</td>
   <td class="tg-yw4l">'.$rw['admin_name'].'</td>
   </tr>
   
 ';
Ако си фанатик на тема сигурност трябва да стане така.

Код за потвърждение: Избери целия код

  echo '
  <tr>
  </tr>
   <tr>
   <td class="tg-yw4l">'.htmlspecialchars($rw['id']).'</td>
   <td class="tg-yw4l">'.htmlspecialchars($rw['victim_name']).'</td>
   <td class="tg-yw4l">'.htmlspecialchars($rw['victim_steamid']).'</td>
   <td class="tg-yw4l">'.htmlspecialchars($rw['banlength']).'</td>
   <td class="tg-yw4l">'.htmlspecialchars($rw['unbantime']).'</td>
   <td class="tg-yw4l">'.htmlspecialchars($rw['reason']).'</td>
   <td class="tg-yw4l">'.htmlspecialchars($rw['admin_name']).'</td>
   </tr>
   
 ';
Сега ще ти обясня защо това е потенциалнa дупка. Същото нещо го има и в call админ и такива, които имат уеб част. Ето каква е дупката в случая. Представи си, че стана смс админ. Влизам банвам някой там за 10-20-30 мин и слагам на причина някакъв javascript. Проблеми за сървъра и за базата няма никакви. Няма sql инжекция, prepare stmt в pawn си работи и всичко е точно. Ама какво става, ако ти отвориш бановете да видиш какви са ги вършили админите. Още докато ти зареди страницата, където е моя бан и ще ти заредя javascript код, който ще вземе всички бисквитки. Така мога да си вляза в сайта ти като админ и да си правя каквото искам. Няма да говорим за бисквитки и как да се защитим. Това е напълно реален начин да те хакна. Няма да ти демонстрирам, просто намирам и казвам :D


Сега по реалния ти въпрос.

Код за потвърждение: Избери целия код

$query = "SELECT * FROM `advanced_bans` ORDER BY id DESC";
Направи го така:

Код за потвърждение: Избери целия код

$time = time();
$query = "SELECT * FROM `advanced_bans` WHERE `unbantime` > $time  ORDER BY id DESC";


Пробвай така.

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Advanced Bans със SQL

Мнение от TheRedShoko » 03 Фев 2018, 16:48

sianbg написа: 02 Фев 2018, 17:10 Ако си фанатик на тема сигурност
Хората са го казали - страх лозе пази. По-добре фанатик, когато трябва, а не да се чудиш после какво се случва и как да си оправиш бакиите :)
Съвет към всички - не споделяйте толкова информация и внимавайте относно нещата в интернет. Може дупките да не са направени нарочно, но трябва да се внимава. Маскирах SQL данните на предишната страница (макар малко късно и не всички...), за да не стане някой фал.

Аватар
Maverick
Извън линия
Рекламатор
Рекламатор
Мнения: 254
Регистриран на: 22 Окт 2016, 17:05
Местоположение: 93.123.18.81:27017
Се отблагодари: 34 пъти
Получена благодарност: 14 пъти
Обратна връзка:

Advanced Bans със SQL

Мнение от Maverick » 03 Фев 2018, 20:37

Ако си фанатик на тема сигурност трябва да стане така.
Благодаря за съвета за сигурността и html escaping-a, промених го.
А относно другите неща, разчитам че хостинга (на сайта) няма да позволи някакви подобни своеволия и си имат някаква защита.
Не си ограничил да се свързва само от 1 ip
Изображение
Е аз го тълкувам това, така всеки с това ип има достъп до базата данни което означава, че все пак е ограничено до едно(или тези които съм сложил там).
Първо като съвет. Никога не си оставяй данните за mysql така.
Ще го има напредвид за напред.
Сега по реалния ти въпрос.
Пробвах, не работи за жалост, по този начин не изкарва никакви резултати таблицата.

Аватар
LoShIaA
Извън линия
Потребител
Потребител
Мнения: 323
Регистриран на: 20 Окт 2016, 14:44
Местоположение: Стара Загора
Се отблагодари: 120 пъти
Получена благодарност: 9 пъти

Advanced Bans със SQL

Мнение от LoShIaA » 03 Фев 2018, 21:53

Много се извинявам, че пиша извън темата, но понеже засегнахте темата сигурност. Има ли начин да направя така, че в контрол панела да може да се влиза само през едно ип и ако да къде да намеря въпросната опция? Говоря за контрол панела до, който получаваме достъп след закупуване на хостинг.

Аватар
sianbg
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 13 Ное 2017, 12:18
Получена благодарност: 1 път
Обратна връзка:

Advanced Bans със SQL

Мнение от sianbg » 04 Фев 2018, 13:52

@ Maverick направи снимка на структурата на тази таблица и няколко записа в нея да има. Да видя как записва времето...

Аватар
Maverick
Извън линия
Рекламатор
Рекламатор
Мнения: 254
Регистриран на: 22 Окт 2016, 17:05
Местоположение: 93.123.18.81:27017
Се отблагодари: 34 пъти
Получена благодарност: 14 пъти
Обратна връзка:

Advanced Bans със SQL

Мнение от Maverick » 04 Фев 2018, 16:39

Заповядай, дано помогне.
Изображение
Може би самият плъгин не предоставя такава възможност?

Аватар
Алекс
Извън линия
Потребител
Потребител
Мнения: 114
Регистриран на: 03 Яну 2017, 01:13
Местоположение: $this->locale()
Се отблагодари: 3 пъти
Получена благодарност: 9 пъти
Обратна връзка:

Advanced Bans със SQL

Мнение от Алекс » 04 Фев 2018, 16:54

Код за потвърждение: Избери целия код

$query = "SELECT * FROM `advanced_bans` ORDER BY id DESC"; 
го направи така:

Код за потвърждение: Избери целия код

date_default_timezone_set('Europe/Sofia');
$time = date("H:i:s d/m/Y");
$query = "SELECT * FROM `advanced_bans` WHERE `unbantime` > $time ORDER BY id DESC";
01001100 01100001 01110010 01100001 01110110 01100101 01101100

Аватар
Maverick
Извън линия
Рекламатор
Рекламатор
Мнения: 254
Регистриран на: 22 Окт 2016, 17:05
Местоположение: 93.123.18.81:27017
Се отблагодари: 34 пъти
Получена благодарност: 14 пъти
Обратна връзка:

Advanced Bans със SQL

Мнение от Maverick » 04 Фев 2018, 17:18


Аватар
sianbg
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 13 Ное 2017, 12:18
Получена благодарност: 1 път
Обратна връзка:

Advanced Bans със SQL

Мнение от sianbg » 04 Фев 2018, 21:08

Код за потвърждение: Избери целия код

$query = "SELECT * FROM `advanced_bans` WHERE UNIX_TIMESTAMP(STR_TO_DATE(unbantime, '%H:%i:%s %d/%m/%Y')) > UNIX_TIMESTAMP(now())  ORDER BY id DESC";
Това трябва да работи. Когато се ползват varchar полета вместо datetime...

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Поддръжка / Помощ”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта