Здравствуйте.
Цель: вывести из таблицы данные А и Б, используя сторонний файл PHP, написанный на простом PHP, а не на жумловском. Я как бы не новичок, но мало что понимаю в PHP, простите уж.
Написал скрипт, который обращается к БД Joomla, но на обычном не жумловском PHP, типа:
$db = mysql_connect("localhost","base","pass");
mysql_select_db("name_db",$db);
это в одном файле. Например, разместил его в какой-нибудь директории и затем закроем её от записи, защитим файлом htaccess, типа:
<Files connect_to_database.php>
order deny,allow
deny from all
</Files>
Deny from all
Затем создал еще один файл, доступ к которому будет у пользователя, например он расположен в директории с Joomla 1.5 и называется video.php
в нем код получает из _GET запроса ID видео, которое будет выведено по ссылке, например:
http://site.ru/folder1/video.php?id=123сам код файла
// подключаем файл, который подключился к БД и находится в защищенной директории (который описан выше)
require_once ($_SERVER['DOCUMENT_ROOT'].'/directory_no_access/connect_to_database.php');
//экранирование какое-то нарыл в хабре, наверное экранирует кавычки =)
function prepareStr( $str ) {
return "'". str_replace(
array( '\\', "\0", "\n", "\r", "'", '"', "\x1a" ),
array( '\\\\', '\\0', '\\n', '\\r', "\\'", '\\"', '\\Z' ),
$str ). "'";
}
$id_vi = ($_GET["id"]);
//get result
$result = mysql_query("SELECT video FROM prefixdb_videos WHERE id=". prepareStr( $id_vi ),$db);
while($row = mysql_fetch_assoc($result)){
echo $row['video'];
}
mysql_close($connection);
Далее... при заходе на страницу пользователь будет видеть плеер видео у которого ID передается в _GET.
http://site.ru/folder1/video.php?id=123НО!Подскажите насколько это безопасно и уязвимо, и как проверить уязвимости, если таковые есть (если можно, то с примерами).
------------------2--------------
Как можно средствами Joomla подключится к БД с ней без использования первого файла, описанного мной, чтобы далее выполнить те же задачи... ?