Помогите Волнует проблема безопасности

  • Автор темы Автор темы Uran
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Uran

Старожил
Баллы
103
Имя в Minecraft
Uran
Вообщем, есть такой файл connect.php, который необходим для лаунчера. В данном файле находится пароль к MySQL базе. В начале файла я обнаружил строчку: "if(!defined('INCLUDE_CHECK')) die("У вас нет прав для просмотра данного файла");". Когда открываешь это файл через сайт, например www.simple.com/minecraft/connect.php, то тебе показывает "У вас нет прав для просмотра данного файла" и больше ничего. Так вот меня волнует вопрос, могут ли каким-то образом взломать эту проверку на инклуд? Если могут, то как? И как сделать так, чтобы не взломали.

P.S Заранее благодарю
 
Вообщем, есть такой файл connect.php, который необходим для лаунчера. В данном файле находится пароль к MySQL базе. В начале файла я обнаружил строчку: "if(!defined('INCLUDE_CHECK')) die("У вас нет прав для просмотра данного файла");". Когда открываешь это файл через сайт, например www.simple.com/minecraft/connect.php, то тебе показывает "У вас нет прав для просмотра данного файла" и больше ничего. Так вот меня волнует вопрос, могут ли каким-то образом взломать эту проверку на инклуд? Если могут, то как? И как сделать так, чтобы не взломали.

P.S Заранее благодарю
Если взломать невозможно, то прошу описать - каким образом эта строчка защищает
 
Ну смотрите, во всех файлах связанных с системой авторизации определена константа INCLUDE_CHECK (можно поменять на другое имя по желанию). Каждый файл будь то checserver.php и другие в самом начале после определения этой константы подключает файл connect.php. В файле connect.php идет проверка на существование данной константы и ее значения, в нашем случае у нее булево значение true. То есть чтобы воспользоваться нашим файлом connect.php нужно обязательно сначала определить эту константу иначе connect.php прекратит выполняться благодаря функции die(). Но поскольку узнать содержимое php файла извне невозможно, то и узнать имя нашей константы тоже, думаю это достаточно безопасно если только кто - то не залезет к вам на сервер по ftp.

P.s Функция define() просто определяет нашу константу.
 
Ну смотрите, во всех файлах связанных с системой авторизации определена константа INCLUDE_CHECK (можно поменять на другое имя по желанию). Каждый файл будь то checserver.php и другие в самом начале после определения этой константы подключает файл connect.php. В файле connect.php идет проверка на существование данной константы и ее значения. То есть чтобы воспользоваться нашим файлом connect.php нужно обязательно сначала определить эту константу иначе connect.php прекратит выполняться благодаря функции die(). Но поскольку узнать содержимое php файла извне невозможно, то и узнать имя нашей константы тоже, думаю это достаточно безопасно если только кто - то не залезет к вам на сервер по ftp.

P.s Функция define() просто проверяет определена ли наша константа.
Спасибо, отныне буду уверен в безопасности. А вот ещё вопрос, я хочу подключить топ богатых игроков и там есть файл config.php в котором указываешь данные MySQL и это файл незащищён (проверял), можно ли в начало файла вставить эту же строчку? Будет ли он тогда защищён?
 
connect.php не запускается сам по себе, он всегда внутри остальных файлов с помощью include(). Смотрите сами по ситуации я не знаю о каком топе речь.
 
connect.php не запускается сам по себе, он всегда внутри остальных файлов с помощью include(). Смотрите сами по ситуации я не знаю о каком топе речь.
Обычный топ богачей для iConomy, то есть показывает список игроков по убыванию. Так вот имеется файл config.php

Вот PhP код файла.
<?php
$connect_error = 'Не удалось присоеденится к базе данных!';

$mysql_host = 'localhost';//хост БД
$mysql_user = 'root';//юзер БД
$mysql_pass = '';//пароль БД
$mysql_db = 'minecraft';//база с БД
$mysql_table = 'iconomy';//таблица плагина iConomy


if (!mysql_connect($mysql_host, $mysql_user, $mysql_pass)||!mysql_select_db($mysql_db)) {
die($connect_error);
}
?>

Так если я в начало вставлю "if(!defined('INCLUDE_CHECK')) die("У вас нет прав для просмотра данного файла");", то будет ли файл защищён?
 
Скиньте, пожалуйста, топ целиком.
 
В index.php после <?php с новой строчки допишите:
Код:
define('НАЗВАНИЕ_КОНСТАНТЫ',true);

Далее в файле config.php после <?php с новой строчки допишите:
Код:
 if(!defined('НАЗВАНИЕ_КОНСТАНТЫ')) die("У вас нет прав для просмотра данного файла");
 
В index.php после <?php с новой строчки допишите:
[PHP2]define('НАЗВАНИЕ_КОНСТАНТЫ',true);[/PHP2]

Далее в файле config.php после <?php с новой строчки допишите:
[PHP2] if(!defined('НАЗВАНИЕ_КОНСТАНТЫ')) die("У вас нет прав для просмотра данного файла");[/PHP2]
И для чего ему этото, смеха ради, смыcл то?
 
А зачем? Что вы подразумеваться под безопасностью?
Типо ваш файл подключать и данные сопрут, нет это сказка... - тогда бы уже 100000000 сайтов было сломано.
Как мне тогда защитить этот несчастный файл?
 
Безопасность лишней не бывает, можешь считать нас параноиками. Uran я же написал выше как, пролистай страницу.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх