Ayola.net
Новости: В связи с обилием спама, постинг на форуме временно закрыт.

Для связи с поддержкой используйте тикеты в панели управления.
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Май 29, 2017, 01:33:37


Войти


Страниц: [1] 2 3 4
  Печать  
Автор Тема: Скрипт журнала ошибок и попыток доступа к БД.  (Прочитано 35080 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« : Март 16, 2009, 00:36:39 »

Почему-то не могу в теме про MySQL написать.... Суть вопроса: К каждой странице подключается скрипт соединения с базой и скрипт с функциями. Допустим: Создаю папку sec в ней создаю файлы  funcsec.php и jurnal.dat, также в эту папку кидаю фаил .хитачес в котором пропишу что доступ закрыт для всех кроме Админа. Дальше в файле funcsec.php напишу такой код:
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #1 : Март 16, 2009, 01:17:53 »

<?php
function security()
{ /*начало функции*/
$query_onl='SELECT*FROM online_user where id_user=\''.$id_user.'\';';
$query_onl_sec=mysql_fetch_assoc(@mysql_query($query_onl));
if($query_onl_sec['login']==='.$login_user.')
  {
$query_user='SELECT*FROM users where id=\''.$id_user.'\';';
$query_user_sec=mysql_fetch_assoc(@mysql_query($query_user));
$login_atack=$query_onl_sec['login'];
$name_atack=$query_user_sec['name'];
$mail_atack=$query_user _sec['mail'];
$ip_atack=$query_onl_sec['ip'];
$browser=$query_onl_sec['brow'];
$atack='1';
  }
else
  {
$login_atack='nologin';
$name_atack='noname';
$mail_atack='nomall';
$ip_atack="$_SERVER['REMOTE_ADDR']";
$browser="$_SERVER['HTTP_USER_AGENT']";
$atack='1'
  }
/*ща дальше напишу*/
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #2 : Март 16, 2009, 01:57:31 »

/*вношу в таблицу ATACK базы кол-во попыток взлома и записываю в jurnal.php данные*/
if($atack!=0)
  {
$query_atack='INSERT INTO atack(data, vrem, user)VALUE("'.date.'","'.time().","'.$login_atack.'");';
mysql_query($query_atack);
$text='.$login_atack.':||:'.$name_atack.':||:'.$mail_atack.':||:'.$ip_atack.':||:'.$browser_atack.';
$fp=fopen("http://'.$_SERVER.'/sec/jurnal.dat","w")
fwrite("$fp,$text,\r");
fclose("$fp");
  }
/*закрываю функцию*/
}
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #3 : Март 16, 2009, 02:14:29 »

/*Например: в админ панели вначале каждой страницы проверяю $id_user,$login_user,$pass_user и $dostup...
если всё кроме доступа ='true'*/

if ($dortup!=1)
{
security($dostup)
echo'<a href="http://lleo.aha.ru\na">HOME</a>';
include_once"подвал страницы";
}
else
{
тут вывожу счётчик атак за сегодня, ссылки на основные страницы админки и ссылку на просмотр журнала
}
.....чота какое-то чудовище замутил.))) Вопросы: будет-ли такой велосипед работать? какой он с точки зрения безопасноти? где доработать,если требуется это? короче, советайте чо-нить...:-) Примерно такой же замут и с ошибками ввода делать? Маэстро, так понятнее выражаю свои мысли?
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #4 : Март 16, 2009, 02:39:46 »

Приступим.

Работать не будет. Потому как:

Код:
function security()
Неплохо бы внести аргументы функции. Которые позже используются в фукнции, например $id_user, $query_user, etc...
Например так:
Код:
function security($id_user, $query_user, ...)

Код:
$fp=fopen("http://'.$_SERVER.'/sec/jurnal.dat","w")
Открывать файл через протокол HTTP - плохая идея. Лучше открывать так:
Код:
$fp=fopen("../logs/sec/jurnal.dat","w")
Кроме того, параметр "w" каждый раз перезаписывает файл, и не гарантирует его создание. Т.е. если у вас произошло несколько ошибок - в логе всегда будет одна, если фала нет при работе скрипта - скрипт не сработает.
Лучше использовать "a+". Примерно так:
Код:
$fp=fopen("../logs/sec/jurnal.dat","a+")

Не понятно зачем данные об атаках писать и в БД и в лог-файл. Не проще ли писать либо в БД либо в файл? Улыбающийся
Записан

Гамлета здесь больше нет. Осталась только тень.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #5 : Март 16, 2009, 02:45:50 »

Маэстро, спс... Боюсь лишнюю инфу в базу писать... ))) И дольше потом писать вывод данных из базы для просмотра в админ панели, проще из файла вытащить и убрать :||:. Та и на БД меньше нагрузки будет.
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #6 : Март 16, 2009, 03:36:38 »

Маэстро, а если я допустим создам $sait_name='мой сайт'; в конфиг.пхп. Так тоже не лучше будет выводить например include_once "http://'.$sait_name.'/sec/funcsec.php"
также и с журналом? Это как с точки зрения безопасности?
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #7 : Март 16, 2009, 03:48:14 »

Маэстро, а если я допустим создам $sait_name='мой сайт'; в конфиг.пхп. Так тоже не лучше будет выводить например include_once "http://'.$sait_name.'/sec/funcsec.php"
также и с журналом? Это как с точки зрения безопасности?
Тут дело не в безопасности. Тут дело в том что это - не правильно Улыбающийся
1) При чтении файла через HTTP функцией fopen вам приходится делать файл читаемым для всех, чем если вы обращаетесь по внутренней дисковой системе linux.
2) В случае с include(_once) оно будет просто работать не верно. Ибо инклудя файл таким образом вы фактически поключаете не сам файл, а результат его работы, т.е. то что он выводит в браузер. А все переменные и прочие объекты не выводимые в браузер не передаются.

P.S. По поводу путей я уже писал тут: http://astraller.name/marks/6/
P.P.S. Не надо меня называть по форумному статусу. Лучше по нику Улыбающийся
Записан

Гамлета здесь больше нет. Осталась только тень.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #8 : Март 16, 2009, 05:05:38 »

Эээ....Долго выговаривать(tm), Спс...пойду почитаю чё там. Тему не закрываю, вопросы ещё будут!:-)
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #9 : Март 24, 2009, 02:53:03 »

Astraller, подскажи, зачем в некоторых скриптах, вверху пишут:  list($msec,$sec)=explode(chr(32),microtime()); $gtime=$msec+$sec; ?
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #10 : Март 24, 2009, 03:15:48 »

И ещё вопрос. Хочу сделать так, чтобы при следущих заходах на сайт, пользователь попадал на ту страницу, с которой он вышел. Как это реализовать? допустим, если сделать в базе отдельную строку например last_str и на каждой странице, после проверки логина, айди и пароля написать адрес страницы в базу так: $str="../forum/tema/who/index.php";
 $query='UPDATE' .prefics. ' users SET last_str= '.$str.''; mysql_query($query);
А потом, при входе на сайт, после проверки выводить так: $str=$переменная уже состыкованная с базой, например data['last_str'];
echo '<a href="'.$str.'?log=$log&pas=$pas">войти</a>; Такое будет работать и безопасно ли это?
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #11 : Март 24, 2009, 03:35:17 »

А зачем записывать последнюю страницу в БД? Нафига вам лишняя информация? Пихайте это всё в кукисы и храните на ПК посетителя сайта.
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #12 : Март 24, 2009, 03:51:26 »

я кукисы отключил. и делаю без них.
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #13 : Март 24, 2009, 04:05:04 »

я кукисы отключил.

Зачем?
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #14 : Март 24, 2009, 04:16:31 »

кукисы угоняют иногда... Да и кукисы не для долгого хранения. Ну прикинь, очистил пользователь кукисы и все посещения скинулись, а так, останется всегда страница на которой остановился.
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #15 : Март 24, 2009, 04:34:44 »

кукисы угоняют иногда... Да и кукисы не для долгого хранения. Ну прикинь, очистил пользователь кукисы и все посещения скинулись, а так, останется всегда страница на которой остановился.

А если пользователь на твой сайт больше в жизни не собирается заходить? Всё равно продолжать хранить его данные?
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #16 : Март 24, 2009, 04:42:15 »

для этого будет написан скрипт, который удаляет пользователей,которые больше 90 дней не заходили.
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #17 : Март 24, 2009, 05:01:18 »

для этого будет написан скрипт, который удаляет пользователей,которые больше 90 дней не заходили.

Дело ваше, конечно.
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #18 : Март 24, 2009, 05:41:34 »

Эээ...вот и пообщались. Так и не подсказали, будет ли работать подобное и как это с точки зрения безопасности?)))
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #19 : Март 24, 2009, 07:10:59 »

Эээ...вот и пообщались. Так и не подсказали, будет ли работать подобное и как это с точки зрения безопасности?)))

Таки вам по ходу дела не помощь конкретная нужна, а просто не с кем потрепаться... Только для этого у нас на форуме есть специальный раздел. Вам туда. ОБЩЕНИЕ называется. Улыбающийся
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
swer
Просветлённый
****

Карма: 14
Сообщений: 460


Просмотр профиля WWW
« Ответ #20 : Март 24, 2009, 08:35:13 »

кукисы угоняют иногда... Да и кукисы не для долгого хранения. Ну прикинь, очистил пользователь кукисы и все посещения скинулись, а так, останется всегда страница на которой остановился.
Это не умно используйте кукисы,незачем угонять кому то куки с данным о ссылке,да и бд буд зависать от большого наплыва..
Записан

Homo homini lupus est!(Человек человеку волк)
Фильмы DivX->Закачаешся>
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #21 : Март 24, 2009, 15:41:11 »

И ещё вопрос. Хочу сделать так, чтобы при следущих заходах на сайт, пользователь попадал на ту страницу, с которой он вышел. Как это реализовать? допустим, если сделать в базе отдельную строку например last_str и на каждой странице, после проверки логина, айди и пароля написать адрес страницы в базу так: $str="../forum/tema/who/index.php";
 $query='UPDATE' .prefics. ' users SET last_str= '.$str.''; mysql_query($query);
А потом, при входе на сайт, после проверки выводить так: $str=$переменная уже состыкованная с базой, например data['last_str'];
echo '<a href="'.$str.'?log=$log&pas=$pas">войти</a>; Такое будет работать и безопасно ли это?
Что-то я не очень представляю как это будет работать.
Допустим кинул я себе в закладки главную вашего сайта. Полазил по нему, и вышел с него на "гостевой"!

В следующий раз я честно перехожу по закладке, желая попасть на главную но ваш скрипт помня что я вышел с гостевой кидает меня туда? Нафиг мне нужна такая радость?

Если же речь идет о возвращении на предыдущую страницу после входа/выхода, то, вам нужно курить в сторону:
Код:
header("Location: ".$_SERVER['HTTP_REFERER']);
Этот код выполненый после записи в сессию идентификатора пользователя вернет его на предыдущую страницу.
Записан

Гамлета здесь больше нет. Осталась только тень.
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #22 : Март 24, 2009, 15:42:15 »

Astraller, подскажи, зачем в некоторых скриптах, вверху пишут:  list($msec,$sec)=explode(chr(32),microtime()); $gtime=$msec+$sec; ?
Затем что им так нравится очевидно. Большего сказать не могу не видя всего остального и не зная назначения скрипта Улыбающийся
Записан

Гамлета здесь больше нет. Осталась только тень.
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #23 : Март 24, 2009, 15:42:53 »

Это не умно используйте кукисы,незачем угонять кому то куки с данным о ссылке,да и бд буд зависать от большого наплыва..
Да нет, в действительности кукисы угоняют часто. Но кто мешает с этим бороться? Улыбающийся
Записан

Гамлета здесь больше нет. Осталась только тень.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #24 : Март 24, 2009, 23:24:16 »

Astraller, форум это как пример. истина: Сайт в виде игры. Например ушёл из игры находясь в магазине... Заходишь, авторизируешься и оказываешься в том же магазине и том же городе. Так понятнее? Глобальные переменные отключены, кукисы тоже... и сделано без сессий.
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Страниц: [1] 2 3 4
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.13 | SMF © 2006, Simple Machines LLC

2003-2008 © ООО "Инфотур" - Бесплатный хостинг Ayola.net
Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Страница сгенерирована за 0.113 секунд. Запросов: 17.