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

Показ ошибок 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 недели спустя...

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

Зарузка...

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

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

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