Просмотр полной версии : Скрипт php логирование отдельных страниц
Моя фантазия подсказала что тему надо разместить именно в этом разделе.
Итак, в связи с гигантской активностью хакеров, которые пытаются ломануть мою бд, я в свою очередь хочу обезопасить себя и своё дитё от обидчиков. С чего я начал?
Ну конечно же я ограничил доступ ко всем админ панелям вот этим дерьмом:
PHP:
$allowed_ips
=
"127.0.0.1"
;
$ips
=
explode
(
" "
,
$allowed_ips
)
;
if
(
array_search
(
$_SERVER
[
"REMOTE_ADDR"
]
,
$ips
)
===
FALSE
)
{
echo
"Уважаемый хакер! Обещаю, я заблокирую ваш IP при очередной попытке поиметь админку."
;
exit
;
}
;
но мне показалось этого мало, и я решил сделать лог определенных файлов (админ панелей) для того, чтоб я видел кого карать...
Но вот ведь незадача, я уже сутки пытаюсь это сделать, и до сих пор безуспешно ...
Если есть люди которые за доброе спасибо мне его чирканут, я буду очень благодарен!
Нужен код, который будет логировать обращение именно к указанным файлам, например к admin.php cp.php
"127.0.0.1","2"=>"127.0.0.2","3"=>"127.0.0.3");
$ip=$_SERVER['REMOTE_ADDR'];
$_SESSION["atempt"]=0;
$atempt=(isset($_SESSION["atempt"]))?$_SESSION["atempt"]:0;
// if (array_search($ip,$allowed_ips) === FALSE) Mozit bit i takoje
if (array_search($ip,$allowed_ips) Уважаемый хакер! Обещаю, я заблокирую ваш IP при очередной попытке поиметь админку.";
$_SESSION["atempt"]=+1;
if ($_SESSION["atempt"]>=1){
$time=now();
$query="INSERT INTO Ban_IP (ip, time, note)
VALUES ('$_SERVER['REMOTE_ADDR']', '$time', 'при очередной попытке поиметь админку')";
//Zdes pravodim Zalif Adresa v MYSQL
};
exit;
};
pss. posli takoi zapisi v asnavnom index.php ili kak ti tam nazval
dalzna bit pravera4ka ili IP adresok zamanen
checkip($_SERVER['REMOTE_ADDR']);
if (checkip ==1){die("vam pizdec vi zablakiravani");}
function checkip($ipadress){
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql="Select * From Ban_IP WHERE ip='$ipadress'"
$result = $conn->query($sql);
if (isset ($result)){return 1;}
else{return 0;}
}
? могут быть синтаксис ошибки ,писал на быструю руку
Desquire
03.11.2016, 12:14
? могут быть синтаксис ошибки ,писал на быструю руку
Там не синтаксические, если будет возможность, щас набросаю свой вариант
Если я этот скрипт инклюдом сделаю, будет работать?
Desquire
03.11.2016, 12:39
Если я этот скрипт инклюдом сделаю, будет работать?
Нет. там надо подключение к бд настроить типо, так же нужен таблицу создать ( он не скинул запрос)
+ там есть лишнее.
А txt файлы не в моде? Хочется побольше автономности, доолжны понимать)
да надо сделать MYSQL Таблицу ,сделать подключение и работать будет Можно место MYSQL сделать в .txt формате,ну это не удобно для быстрых манипуляций
Desquire
03.11.2016, 13:07
да надо сделать MYSQL Таблицу ,сделать подключение и работать будет Можно место MYSQL сделать в .txt формате,ну это не удобно для быстрых манипуляций
Та ну хз, можно и ткт, зачем париться
Я чутка переделал твой вариант)
PHP:
[CODE]
session_start
(
)
;
$allowed_ips
=
array
(
"1"
=
>
"127.0.0.1"
,
"2"
=
>
"127.0.0.2"
,
"3"
=
>
"127.0.0.3"
,
)
;
$file
=
'bannedip.txt'
;
$try
=
'tryip.txt'
;
$ip
=
getIp
(
)
;
if
(
array_search
(
$ip
,
$allowed_ips
)
Вот так наверное по изящней будет:
PHP:
if
(
!
file_exists
(
FCreator
:
:
PATH_TO_FILE
)
{
FCreator
:
:
getInstance
(
)
-
>
createAndWrite
(
)
;
}
else
{
FCreator
:
:
getInstance
(
)
-
>
write
(
)
;
}
class
FCreator
{
public
const
PATH_TO_FILE
=
"путь к файлу"
;
public
static
function
getInstance
(
)
{
return
self
:
:
i
=
new
FCreator
(
)
;
}
public
function
write
(
)
{
if
(
file_put_contents
(
PATH_TO_FILE
,
"Подключение на маршрут администратора. IP адрес: "
.
SERVER
[
'REMOTE_ADDR'
]
.
" Дата:"
.
date
(
'Y/m/d-h:m'
)
)
)
{
//записано в файл
}
else
{
//unknown error
}
}
public
function
createAndWrite
(
)
{
fcreate
(
PATH_TO_FILE
)
;
$this
-
>
write
(
)
;
}
}
[QUOTE="Desquire"]
Та ну хз, можно и ткт, зачем париться
Я чутка переделал твой вариант)
PHP:
[CODE]
session_start
(
)
;
$allowed_ips
=
array
(
"1"
=
>
"127.0.0.1"
,
"2"
=
>
"127.0.0.2"
,
"3"
=
>
"127.0.0.3"
,
)
;
$file
=
'bannedip.txt'
;
$try
=
'tryip.txt'
;
$ip
=
getIp
(
)
;
if
(
array_search
(
$ip
,
$allowed_ips
)
Да зачееем) если он пытается поиметь админку, ему и пожизненного мало будет)
Да зачееем) если он пытается поиметь админку, ему и пожизненного мало будет)
хорошую тему поднял ?
Desquire
03.11.2016, 14:19
Отлично ,еще допиши как проверочку при заходе на СР если есть файл ip блок ставило ,и кстати если в дальнейшем он будет проводить манипуляций с ip адресами ,запихивать в .txt формат плохая практика ,это лишний ресурсы, сделать функциональность для снятия бана ,или что то похожие будет геморно или +бан со временем на 1 час 1 день или на 1год
Можно еще и панельку прикнутить, в который все забаненные ип, с данными о браузере и т.п.
Но ....)
Тут цель блочить доступ к админке. разве не?
Расширение функционала приветствуется))
Desquire
03.11.2016, 14:22
Расширение функционала приветствуется))
Ну "на добром слове" я тебе помог.
Если кто-то захочет может допилить сохранение в бд и т.д.
Да зачееем) если он пытается поиметь админку, ему и пожизненного мало будет)
куча примеров почему он ухватывает бан (не за что ) первый простой переход по ссылке например ср/admin кто нибудь такой плюшку спостил как на приколе игрушка БАН
чювак 2 раза зайдет пиз..... бан у тебя по жизни
+ таким методом можно забанить всех твоих Игроков ,просто расылачка (Посмотри что здесь ) и все кто посмотрел бан
я лично использую метод попытка передачи параметров или подбор ключа не авторизированным пользователям
Да зачееем) если он пытается поиметь админку, ему и пожизненного мало будет)
Ну давай Форум администраторов игровых серверов - Вход в панель управления | Панель управления - Форум администраторов игровых серверов
Зачем изобретать велик?
Уже за вас всё придумали, обдумали, передумали и реализовали, доступ по IP легко правиться в htaccess!
К тому же, если тучи сгущаются, можете изменить адрес админ центра.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot