ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Скрипт php логирование отдельных страниц (https://forum.antichat.xyz/showthread.php?t=767289)

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

Цитата:

Сообщение от Grand

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

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

VoDela 03.11.2016 12:38

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

Desquire 03.11.2016 12:39

Цитата:

Сообщение от VoDela

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

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

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

VoDela 03.11.2016 12:51

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

Grand 03.11.2016 12:53

да надо сделать MYSQL Таблицу ,сделать подключение и работать будет Можно место MYSQL сделать в .txt формате,ну это не удобно для быстрых манипуляций

Desquire 03.11.2016 13:07

Цитата:

Сообщение от Grand

да надо сделать 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
(
)
;
}
}



Время: 15:28