![]() |
Безопасность кода ? Вот сам сурс Seobot
Хотел бы поинтересоваться ибо когда то видел как ламают сайты через поисковик еще давненько.. типа через отображение запроса проводили атака в самом сайте.
Скачал я какойто скрипт под названием Seobot Который отображает сприсо страниц и какой бот посетил вот сам seobot <? if ( strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex') ) { $bot='Yandex';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot') ) {$bot='Google';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'Slurp') ) {$bot='Slurp';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'WebCrawler') ) {$bot='WebCrawler';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'ZyBorg') ) {$bot='ZyBorg';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'google') ) {$bot='Google';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'scooter') ) {$bot='AltaVista';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'stack') ) {$bot='Rambler';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'aport') ) {$bot='Aport';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'lycos') ) {$bot='Lycos';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'fast') ) {$bot='Fast Search';} elseif ( strstr($_SERVER['HTTP_USER_AGENT'], 'rambler') ) {$bot='Rambler';} if($bot !="") { $ip = $REMOTE_ADDR; $date = date("d.m.Y"); $home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $fh = fopen('sebot', "r"); $fil = fread($fh, filesize('sebot')); fclose($fh); $con=$date.":::".$bot.":::".$ip.":::".$home."::: \r\n".$fil; $file=fopen("sebot","w"); fputs($file, $con); fclose($file); } ?> Хотел просить безопасный ли этот код. т.е если пооделать запрост и он отобразит к примеру ковычки или инлюд какой или xss ? Может поставить фильтрацию ? но там же надо что бы слеши были... а я опять в этих Регулярках ничо не понимаю.. Ну что бы все пропускало кроме кавычек или еще там чего .. Вообщем просто хочу совета. |
В данном коде, если включен register_globals можно перезаписать переменную $bot, тем самым писать что угодно тебе в файл sebot, насколько это опасно решать тебе....
Чтобы исправить перед первым if'ом напиши $bot = ""; А лучше переписать все через switch case default. |
Цитата:
Можно записать любое содержимое в файл через специально сформированный УРЛ. PHP код:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Не надо быть столь увереным. Если включен модуль mod_mime то пхп скрипт с любим расширением выполнится как пхп :) |
+ к этому локальный инклуд... или вдруг есть скрипт который читает этот лог, как минимум раскрытие информации о сервере )
|
Цитата:
PHP код:
PHP код:
и по сабжу: вышеприведенный скрипт будет работать если регистр_глобал он потому как: $ip = $REMOTE_ADDR; |
Код:
http://evilsite.ru/evilscript.php?<?phpinfo()?>Код:
evilsite.ruevilscript.php?<?phpinfo()?>Цитата:
|
L I G A, ппц, бред ты написал
во-первых Цитата:
Цитата:
|
Spyder да ты прав как то не заметил,
там надо: <?php $xek=eval($_GET['tratata']); echo $xek; ?> ну да ладно а $_SERVER['REQUEST_URI']; выводит путь после ....php? [тут] ??? :confused: |
Создай у себя файлик test.php, впиши в него
PHP код:
|
L I G A, неужели трудно сделать
PHP код:
/test3.php?a=b |
Посоветуйте тогда какой нибуть скрипт для выводе реферов ? т.е я хочу что бы был вывод откуда пришол пользователь или где лазил Бот. Только безопасный если кто знает. Я просто не хочу на сервак ставить все попало что бы потом не окозаться без сайта и данных в 1 прекрасный день ..
|
UP
|
Вот нашол еще 1 LOG REFFER
<?php // file where referrals are stored, change if you wish $file = "refers.txt"; // if set to 1 IPs will be logged and associated with the URL they were referred by $log_ip = 0; //////////////////// NO NEED TO EDIT BELOW //////////////////// $referer = (!isset($_SERVER['HTTP_REFERER']) || $_SERVER['HTTP_REFERER'] == '') ? 'an unknown url/direct access (typing in URL)' : $_SERVER['HTTP_REFERER']; $ip = ($log_ip == 1) ? $_SERVER['REMOTE_ADDR'] : false; $time = date('d F Y'); $user_text = ($log_ip == 1) ? "On {$time} {$ip}" : "On {$time} a user"; $refer_text = "{$user_text} was referred by {$referer}"; $fp = fopen($file, 'a'); fwrite($fp, "{$refer_text}\n"); fclose($fp); ?> Этот безопасный ? .. |
L I G A ммм тот пример что ты дал совсем не в тему =)
он написал ниже Цитата:
|
Зачем новый? Cначала впиши $bot = "";
И пропусти $_SERVER['REQUEST_URI']; через тот же htmlspecialchars() |
Цитата:
Как быть ? Хочу безопасный код. Вы тут пишет что куда и как... и понимаю лиш половину того что вы пишите. и понимаю что он не безопасен. Так как быть ? Цитата:
Спасибо. |
Как-то так:
PHP код:
|
Цитата:
|
FireFenix
Мда.. отныне кури матчасть 2 раза. |
| Время: 00:51 |