Хочу задать такой вопрос. Часто на сайтах используются разные модули для на JS для удобства.
Например, кнопка проверки существования логина, я использую скрипт опирающийся на jQuery/
В нем есть подключение обработчика на php
var url = 'search.php';
, его цель, обработчика, принять переменную $_POST['string'] и сверить ее с таблицей юзеров на совпадение логина.
Так вот, при просмотре исходного кода страницы на, которой стоит поиск:
1. Видно путь название файла search.php - обработчика.
2. В самом обработчике нельзя поставить защиту от инклюда константой т.к. она туда просто не уйдет.
2. В нем же приходится явно прописывать конфигурацию подключения к БД:
$db = mysql_connect ("localhost","user","123");
mysql_select_db("Database",$db);
Т.к. скрытно ее туда передать тоже не представляется возможным (ну разве что только через файл)
Итак мы имеем:
Файл который все видят, знаем, что в нем лежат все параметры подключения к БД и знаем, что его можно инклюдить т.к. констант там нет сессии в нем тоже не работают.
Что с этим делать? Как можно защитить?
Спустя 3 минуты, 2 секунды (22.01.2012 - 07:38) inpost написал(а):
A.B.C.
А зачем защищать? Раз показал файл, значит показал
Ничего страшного в этом нет. Это тоже самое, что бояться, что люди узнают, что у тебя на сервере есть файл: index.php , а по этому поводу не боишься?!
А зачем защищать? Раз показал файл, значит показал
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 3 минуты, 19 секунд (22.01.2012 - 07:41) GET написал(а):
inpost
Но его же можно легко инклюдить?
Я точно не знаю, как хакеры это делают но они это делают ведь. Существует ведь опасность вытащить содержимое файла?
Но его же можно легко инклюдить?
if(!defined('abc')){exit(file_get_contents('../404.html'));}- это не работает
Я точно не знаю, как хакеры это делают но они это делают ведь. Существует ведь опасность вытащить содержимое файла?
Спустя 1 минута, 57 секунд (22.01.2012 - 07:43) GET написал(а):
inpost
А лучше действительно конфигурацию подключения к БД спрятать в файл и его оттуда потом (в обработчике JS) вытаскивать или разницы особой нет?
А лучше действительно конфигурацию подключения к БД спрятать в файл и его оттуда потом (в обработчике JS) вытаскивать или разницы особой нет?
Спустя 1 минута, 14 секунд (22.01.2012 - 07:44) inpost написал(а):
A.B.C.
Повторюсь, есть же index.php, а за него ты не боишься?!![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Давай будем бояться, что кто-то догадается, что у тебя есть index.php, а ведь из него тоже своруют данные!!!
Ничего не вытащат. Вытаскивают по другому, заливают вредоносный СВОЙ php скрипт, а далее функция glob + file() + mail(). Обошел весь сайт, вытащил все, что тебе надо. Или пароль по фтп воруют.
Повторюсь, есть же index.php, а за него ты не боишься?!
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Давай будем бояться, что кто-то догадается, что у тебя есть index.php, а ведь из него тоже своруют данные!!!
Ничего не вытащат. Вытаскивают по другому, заливают вредоносный СВОЙ php скрипт, а далее функция glob + file() + mail(). Обошел весь сайт, вытащил все, что тебе надо. Или пароль по фтп воруют.
Спустя 1 минута, 10 секунд (22.01.2012 - 07:45) GET написал(а):
inpost
Спасибо!
Спасибо!
Спустя 2 дня, 3 часа, 1 минута, 41 секунда (24.01.2012 - 10:47) SoMeOnE написал(а):
Если не ошибаюсь, что именно нужно было, то желательно в начало обработчика добавлять строку
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {die();}
Спустя 3 часа, 44 минуты, 22 секунды (24.01.2012 - 14:31) inpost написал(а):
SoMeOnE
Всё, что начинается с HTTP -> легко подделывается.
Всё, что начинается с HTTP -> легко подделывается.
Спустя 56 минут, 15 секунд (24.01.2012 - 15:28) SoMeOnE написал(а):
inpost
Ну хотя бы от школьников защита)
Ну хотя бы от школьников защита)
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.