PDA

Просмотр полной версии : Скрипт php логирование отдельных страниц


VoDela
03.11.2016, 10:45
Моя фантазия подсказала что тему надо разместить именно в этом разделе.

Итак, в связи с гигантской активностью хакеров, которые пытаются ломануть мою бд, я в свою очередь хочу обезопасить себя и своё дитё от обидчиков. С чего я начал?

Ну конечно же я ограничил доступ ко всем админ панелям вот этим дерьмом:

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

Grand
03.11.2016, 11:56
"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;}

}

Grand
03.11.2016, 12:00
? могут быть синтаксис ошибки ,писал на быструю руку

Desquire
03.11.2016, 12:14
? могут быть синтаксис ошибки ,писал на быструю руку


Там не синтаксические, если будет возможность, щас набросаю свой вариант

VoDela
03.11.2016, 12:38
Если я этот скрипт инклюдом сделаю, будет работать?

Desquire
03.11.2016, 12:39
Если я этот скрипт инклюдом сделаю, будет работать?


Нет. там надо подключение к бд настроить типо, так же нужен таблицу создать ( он не скинул запрос)

+ там есть лишнее.

VoDela
03.11.2016, 12:51
А txt файлы не в моде? Хочется побольше автономности, доолжны понимать)

Grand
03.11.2016, 12:53
да надо сделать 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
)

VoDela
03.11.2016, 13:34
Вот так наверное по изящней будет:

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
(
)
;
}
}

Grand
03.11.2016, 13:38
[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
)

VoDela
03.11.2016, 13:40
Да зачееем) если он пытается поиметь админку, ему и пожизненного мало будет)

Grand
03.11.2016, 13:44
Да зачееем) если он пытается поиметь админку, ему и пожизненного мало будет)


хорошую тему поднял ?

Desquire
03.11.2016, 14:19
Отлично ,еще допиши как проверочку при заходе на СР если есть файл ip блок ставило ,и кстати если в дальнейшем он будет проводить манипуляций с ip адресами ,запихивать в .txt формат плохая практика ,это лишний ресурсы, сделать функциональность для снятия бана ,или что то похожие будет геморно или +бан со временем на 1 час 1 день или на 1год


Можно еще и панельку прикнутить, в который все забаненные ип, с данными о браузере и т.п.

Но ....)

Тут цель блочить доступ к админке. разве не?

VoDela
03.11.2016, 14:21
Расширение функционала приветствуется))

Desquire
03.11.2016, 14:22
Расширение функционала приветствуется))


Ну "на добром слове" я тебе помог.

Если кто-то захочет может допилить сохранение в бд и т.д.

Grand
03.11.2016, 14:32
Да зачееем) если он пытается поиметь админку, ему и пожизненного мало будет)


куча примеров почему он ухватывает бан (не за что ) первый простой переход по ссылке например ср/admin кто нибудь такой плюшку спостил как на приколе игрушка БАН

чювак 2 раза зайдет пиз..... бан у тебя по жизни

+ таким методом можно забанить всех твоих Игроков ,просто расылачка (Посмотри что здесь ) и все кто посмотрел бан

я лично использую метод попытка передачи параметров или подбор ключа не авторизированным пользователям

kick
03.11.2016, 16:11
Да зачееем) если он пытается поиметь админку, ему и пожизненного мало будет)


Ну давай Форум администраторов игровых серверов - Вход в панель управления | Панель управления - Форум администраторов игровых серверов

Logan22
04.11.2016, 03:37
Зачем изобретать велик?

Уже за вас всё придумали, обдумали, передумали и реализовали, доступ по IP легко правиться в htaccess!

К тому же, если тучи сгущаются, можете изменить адрес админ центра.