Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 1470 Просмотров
*

usemind

  • Осваиваюсь на форуме
  • 33
  • 4 / 0
Здравствуйте.

Цель: вывести из таблицы данные А и Б, используя сторонний файл 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 подключится к БД с ней без использования первого файла, описанного мной, чтобы далее выполнить те же задачи... ?
*

winstrool

  • Давно я тут
  • 820
  • 51 / 2
  • Свободен для работы
Данный код уязвим для sql-injection, то что используется фильтр это для обреза переносов строк и спец симвалов, поидее он тут вообще не нужен, достаточно использовать функцию trim()для того чтоб небыло иньекции, юзайте функцию intval(), подробней об этой функции можно почитать сдесь http://www.php.su/functions/?intval, также полезно почитать про http://php.net/manual/ru/function.mysql-real-escape-string.php,
вот так будет лучше
Цитировать
$result = mysql_query("SELECT video FROM prefixdb_videos WHERE id='".intval($id_vi)."'".,$db);
*

usemind

  • Осваиваюсь на форуме
  • 33
  • 4 / 0
winstrool, благодарю за хороший ответ. воспользуюсь Вашим советом :)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

базы данных в папке администратора и безопасность

Автор Antonio Racter

Ответов: 3
Просмотров: 740
Последний ответ 26.03.2017, 17:41:13
от Antonio Racter
Безопасность Joomla 3.0 Как блокировать запросы POST?

Автор BuzCrysl

Ответов: 19
Просмотров: 3419
Последний ответ 31.01.2017, 13:12:23
от sterveo
пытаюсь Вылечить сайт на 2, 5 от вредоносного скрипта

Автор inspire

Ответов: 8
Просмотров: 808
Последний ответ 12.01.2017, 14:15:55
от vipiusss
Появление скрипта

Автор uisr

Ответов: 42
Просмотров: 3524
Последний ответ 13.12.2016, 11:36:04
от SeBun
Форма связи с пользователем (гостевая книга, форма комментариев) и безопасность

Автор Igoritaly

Ответов: 8
Просмотров: 1489
Последний ответ 13.11.2015, 15:57:39
от Igoritaly