Перейти к контенту

Показ ошибок SQL запросов - помощь взломщику?


Рекомендуемые сообщения

Да плюнь... Сдался мне Yandex

Он только базу логами своими забивает...

За два дня 40000 записей...

Ну его... :D

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...
  • Ответы 62
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Плохо что здесь нельзя заюзать определение группы пользователя. А то так можно было бы показывать только админам полную ошибку, а пользователям какое то короткое сообщение.

 

Но хотя я сделал так, беру из кук member_id, если = 1 то показываю ошибку, если нет то бакозабивающее сообщение для пользователей :D

Ссылка на комментарий
Поделиться на других сайтах

Чем? Просто берется мембер ид с кукисов. Конечно злоумышленник может заменить его в кукисах, но до этого еще надо будет додуматся.
Ссылка на комментарий
Поделиться на других сайтах

ДЛЯ 2.0

 

Закомментирован старый код. Ниже вставлен новый.

Измените мой мейл на ваш.

 

/ib_kernel/class_db_mysql.php

	/*========================================================================*/
// Basic error handler
/*========================================================================*/

function fatal_error($the_error="")
{
	// Are we simply returning the error?

//abc del
//		if ($this->return_die == 1)
//		{
//			$this->error	= mysql_error();
//			$this->error_no = mysql_errno();
//			$this->failed   = 1;
//			return;
//		}
//		
//		$the_error .= "\n\nОшибка mySQL: ".mysql_error()."\n";
//		$the_error .= "Код ошибки: ".$this->error_no."\n";
//		$the_error .= "Когда: ".date("j M Y H:i:s");
//		
//		$out = "<html><head><title>Ошибка базы данных</title>
//			   <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
//			   <style>P,BODY{ font-family:arial,sans-serif; font-size:11px; }</style></head><body>
//				<br><br><blockquote><b>Произошла ошибка базы данных.</b><br>
//			   Попробуйте обновить страницу <a href=\"java script:window.location=window.location;\">здесь</a>.
//			   <br><br><b>Ошибка возвратила следующий результат:</b><br>
//			   <form name='mysql'><textarea style=\"width:95%;\" rows=\"8\" cols=\"95\">".htmlspecialchars($the_error)."</textarea></form><br>Примите наши соболезнования...</blockquote></body></html>";
//			   
//	
//		echo($out);
//		die("");

//abc add
$this->error	= mysql_error();
$this->error_no = mysql_errno();

require_once ROOT_PATH."sources/classes/class_email.php";
$this->email = new emailer();

$this->email->message  = "» {$the_error}\r\n\r\n";
$this->email->message .= '» ошибка mySQL: ' . $this->error . "\r\n\r\n";
$this->email->message .= '» код ошибки: ' . $this->error_no . "\r\n\r\n";
$this->email->message .= "------------------------------------------------------------------------------\r\n";  
$this->email->message .= 'Адрес: http://' . $_SERVER['SERVER_NAME'] .''. $_SERVER['REQUEST_URI'] . "\r\n";  
$this->email->message .= 'Когда: ' . date('d M Y H:i:s') . "\r\n";
$this->email->message .= 'IP-адр: '. $_SERVER['REMOTE_ADDR'] . "\r\n";

$this->email->to 		= "админ@мейл.ru";  
$this->email->subject	= "MySQL-database error!";  
$this->email->send_mail();

echo "<html><head><title>Ошибка системы</title>";
echo "<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>";
echo "<style>P,BODY{ font-family:arial,sans-serif; font-size:12px; }</style></head>\r\n";
echo "<body>\r\n";
echo " <br><br><blockquote><b>К сожалению, возникли некоторые проблемы в работе конференции.</b><br />\r\n";
echo "<br>Попробуйте либо зайти позже, либо нажмите кнопку <a href=\"java script:window.location=window.location;\">обновить</a> в вашем браузере.";
echo "<p>Приносим извинения за причиненные неудобства.</p>";
echo "\r\n\r\n</blockquote></body></html>";

exit;
//end
}

/*========================================================================*/
// Create an array from a multidimensional array returning formatted
// strings ready to use in an INSERT query, saves having to manually format
// the (INSERT INTO table) ('field', 'field', 'field') VALUES ('val', 'val')
/*========================================================================*/

 

...спасибо Miranda-е за исправление ошибок (я-то не программер..., что видно в назначении адреса вызвавшего ошибку. но работает...)

 

Чтобы искуственно вызвать ошибку базы, переименуйте таблицу "ibf_pools" в "ibf_pools_" (потом не забудьте вернуть обратно её честное имя) и смело зайдите в любую "голосовальную" тему...

 

Письмо выглядит так

» ошибка запроса mySQL: SELECT * FROM ibf_polls WHERE tid=55413

» ошибка mySQL: Table 'forum.ibf_polls' doesn't exist

» код ошибки: 1146

------------------------------------------------------------------------------
Адрес: http://forum.materinstvo.ru/index.php?showtopic=55413
Когда: 18 Jun 2006 13:06:57
IP-адр: 81.5.92.243

Ссылка на комментарий
Поделиться на других сайтах

  • 3 недели спустя...
  • 2 недели спустя...
  • 5 месяцев спустя...
  • 2 недели спустя...

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.