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™
|
 |
« Ответ #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™
|
 |
« Ответ #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
Нужен сайт? Нет проблем!
|
 |
« Ответ #11 : Март 24, 2009, 03:35:17 » |
|
А зачем записывать последнюю страницу в БД? Нафига вам лишняя информация? Пихайте это всё в кукисы и храните на ПК посетителя сайта.
|
|
|
Записан
|
ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
|
|
|
Convict
Новичёк
Карма: 0
Сообщений: 39
convict
|
 |
« Ответ #12 : Март 24, 2009, 03:51:26 » |
|
я кукисы отключил. и делаю без них.
|
|
|
Записан
|
Говорите - говорите, я всегда зеваю, когда мне интересно.
|
|
|
Константин Абрамов
Просветлённый
  
Карма: 28
Сообщений: 876
Нужен сайт? Нет проблем!
|
 |
« Ответ #13 : Март 24, 2009, 04:05:04 » |
|
|
|
|
Записан
|
ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
|
|
|
Convict
Новичёк
Карма: 0
Сообщений: 39
convict
|
 |
« Ответ #14 : Март 24, 2009, 04:16:31 » |
|
кукисы угоняют иногда... Да и кукисы не для долгого хранения. Ну прикинь, очистил пользователь кукисы и все посещения скинулись, а так, останется всегда страница на которой остановился.
|
|
|
Записан
|
Говорите - говорите, я всегда зеваю, когда мне интересно.
|
|
|
Константин Абрамов
Просветлённый
  
Карма: 28
Сообщений: 876
Нужен сайт? Нет проблем!
|
 |
« Ответ #15 : Март 24, 2009, 04:34:44 » |
|
кукисы угоняют иногда... Да и кукисы не для долгого хранения. Ну прикинь, очистил пользователь кукисы и все посещения скинулись, а так, останется всегда страница на которой остановился.
А если пользователь на твой сайт больше в жизни не собирается заходить? Всё равно продолжать хранить его данные?
|
|
|
Записан
|
ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
|
|
|
Convict
Новичёк
Карма: 0
Сообщений: 39
convict
|
 |
« Ответ #16 : Март 24, 2009, 04:42:15 » |
|
для этого будет написан скрипт, который удаляет пользователей,которые больше 90 дней не заходили.
|
|
|
Записан
|
Говорите - говорите, я всегда зеваю, когда мне интересно.
|
|
|
Константин Абрамов
Просветлённый
  
Карма: 28
Сообщений: 876
Нужен сайт? Нет проблем!
|
 |
« Ответ #17 : Март 24, 2009, 05:01:18 » |
|
для этого будет написан скрипт, который удаляет пользователей,которые больше 90 дней не заходили.
Дело ваше, конечно.
|
|
|
Записан
|
ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
|
|
|
Convict
Новичёк
Карма: 0
Сообщений: 39
convict
|
 |
« Ответ #18 : Март 24, 2009, 05:41:34 » |
|
Эээ...вот и пообщались. Так и не подсказали, будет ли работать подобное и как это с точки зрения безопасности?)))
|
|
|
Записан
|
Говорите - говорите, я всегда зеваю, когда мне интересно.
|
|
|
Константин Абрамов
Просветлённый
  
Карма: 28
Сообщений: 876
Нужен сайт? Нет проблем!
|
 |
« Ответ #19 : Март 24, 2009, 07:10:59 » |
|
Эээ...вот и пообщались. Так и не подсказали, будет ли работать подобное и как это с точки зрения безопасности?)))
Таки вам по ходу дела не помощь конкретная нужна, а просто не с кем потрепаться... Только для этого у нас на форуме есть специальный раздел. Вам туда. ОБЩЕНИЕ называется. 
|
|
|
Записан
|
ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
|
|
|
swer
|
 |
« Ответ #20 : Март 24, 2009, 08:35:13 » |
|
кукисы угоняют иногда... Да и кукисы не для долгого хранения. Ну прикинь, очистил пользователь кукисы и все посещения скинулись, а так, останется всегда страница на которой остановился.
Это не умно используйте кукисы,незачем угонять кому то куки с данным о ссылке,да и бд буд зависать от большого наплыва..
|
|
|
Записан
|
|
|
|
Astraller™
|
 |
« Ответ #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™
|
 |
« Ответ #22 : Март 24, 2009, 15:42:15 » |
|
Astraller, подскажи, зачем в некоторых скриптах, вверху пишут: list($msec,$sec)=explode(chr(32),microtime()); $gtime=$msec+$sec; ?
Затем что им так нравится очевидно. Большего сказать не могу не видя всего остального и не зная назначения скрипта 
|
|
|
Записан
|
Гамлета здесь больше нет. Осталась только тень. 
|
|
|
Astraller™
|
 |
« Ответ #23 : Март 24, 2009, 15:42:53 » |
|
Это не умно используйте кукисы,незачем угонять кому то куки с данным о ссылке,да и бд буд зависать от большого наплыва..
Да нет, в действительности кукисы угоняют часто. Но кто мешает с этим бороться? 
|
|
|
Записан
|
Гамлета здесь больше нет. Осталась только тень. 
|
|
|
Convict
Новичёк
Карма: 0
Сообщений: 39
convict
|
 |
« Ответ #24 : Март 24, 2009, 23:24:16 » |
|
Astraller, форум это как пример. истина: Сайт в виде игры. Например ушёл из игры находясь в магазине... Заходишь, авторизируешься и оказываешься в том же магазине и том же городе. Так понятнее? Глобальные переменные отключены, кукисы тоже... и сделано без сессий.
|
|
|
Записан
|
Говорите - говорите, я всегда зеваю, когда мне интересно.
|
|
|
|