Форум Joomla! Україна

Повна версія: Питання безпеки
Ви переглядаєте спрощену версію. Переглянути повну версію з віповідним форматуванням.
Сторінки: 1 2
Піднімаю дане питання, тому що безпека сайту це досить боляче питання в теперішній час. Не подумайте що я якийсь школярик, що хоче стати крутим хакером, хоч і це поняття зараз сильно спотворено, просто зіткнувся з такою неприємною справою. Рахую що врахування безпеки тільки сприятиме розвитку проекту
Що саме цікавить у даному питанні?
joomla - проект з досить високим рівнем безпеки, але добре було б висвітлювати на сайті появу патчів та інше що стосується безпеки,  що зрозуміло повисить безпеку. Сподіваюсь що відвідувачам форуму буде про що сказати по цій темі
ОК!
Давайте піднімати!

Отже наведу деякі приклади безпеки, які залежать не від джумли, а від адміністратора:
1. cmod 0777 на файл конфігурації та на інші файли у корені сайту;
2. register_global ON
3. неоновлені розширення та розширення у яких не врахований register_global

Ось що веде до проникнення на ваш сайт хакера зі стажем в 1 місяць Smile

Сама ж джумла стабільна до хакерських атак!!!

Ну що давайте тоді почнемо у цьому топіку говорити про безпеку!
по даній темі маю два питання:

1. Хто шо може сказати про SQL ін'єкції? Наскільки це реальна загроза длія Джумли ?

2. Де можна побачити доку (можемо навіть спільними зусиллями її перекласти на укр.) де детально б описувалися всі налаштування і сервера і самої Джумли, які гарантують не втруччання ? Чи повністю достатньо того, що описав Dutch ?
Особисто я відкрив для себе багато цікавого, переглядаючи теми, присвяченій безпеці, на російському форумі - joomlaforum.ru
Elrond Написав:по даній темі маю два питання:

1. Хто шо може сказати про SQL ін'єкції? Наскільки це реальна загроза длія Джумли ?

і мені цікаво !
з цим можна якось боротися?
Тобто потрібно у globals php параметри встановити на "ON"?(
Код:
#  PHP register_globals установлена в `ON` вместо `OFF`
# Joomla! RG_EMULATION установлена в `ON` вместо `OFF` в файле globals.php
)
Це попередження динамічне чи статичне?
Так правильно виставлені параметри?
Код:
/**
* Adds an array to the GLOBALS array and checks that the GLOBALS variable is
* not being attacked
* @param array
* @param boolean True if the array is to be added to the GLOBALS
*/
function checkInputArray( &$array, $globalise=false ) {
   static $banned = array( '_files', '_env', '_get', '_post', '_cookie', '_server', '_session', 'globals' );

   foreach ($array as $key => $value) {
      $intval = intval( $key );
      // PHP GLOBALS injection bug
      $failed = in_array( strtolower( $key ), $banned );
      // PHP Zend_Hash_Del_Key_Or_Index bug
      $failed |= is_numeric( $key );
      if ($failed) {
         die( 'Illegal variable <b>' . implode( '</b> or <b>', $banned ) . '</b> passed to script.' );
      }
      if ($globalise) {
         $GLOBALS[$key] = $value;
      }
   }
}

/**
* Emulates register globals = off
*/
function unregisterGlobals () {
   checkInputArray( $_FILES );
   checkInputArray( $_ENV );
   checkInputArray( $_GET );
   checkInputArray( $_POST );
   checkInputArray( $_COOKIE );
   checkInputArray( $_SERVER );

   if (isset( $_SESSION )) {
      checkInputArray( $_SESSION );
   }

   $REQUEST = $_REQUEST;
   $GET = $_GET;
   $POST = $_POST;
   $COOKIE = $_COOKIE;
   if (isset ( $_SESSION )) {
      $SESSION = $_SESSION;
   }
   $FILES = $_FILES;
   $ENV = $_ENV;
   $SERVER = $_SERVER;
   foreach ($GLOBALS as $key => $value) {
      if ( $key != 'GLOBALS' ) {
         unset ( $GLOBALS [ $key ] );
      }
   }
   $_REQUEST = $REQUEST;
   $_GET = $GET;
   $_POST = $POST;
   $_COOKIE = $COOKIE;
   if (isset ( $SESSION )) {
      $_SESSION = $SESSION;
   }
   $_FILES = $FILES;
   $_ENV = $ENV;
   $_SERVER = $SERVER;
}

/**
* Emulates register globals = on
*/
function registerGlobals() {
   checkInputArray( $_FILES, true );
   checkInputArray( $_ENV, true );
   checkInputArray( $_GET, true );
   checkInputArray( $_POST, true );
   checkInputArray( $_COOKIE, true );
   checkInputArray( $_SERVER, true );

   if (isset( $_SESSION )) {
      checkInputArray( $_SESSION, true );
   }

   foreach ($_FILES as $key => $value){
      $GLOBALS[$key] = $_FILES[$key]['tmp_name'];
      foreach ($value as $ext => $value2){
         $key2 = $key . '_' . $ext;
         $GLOBALS[$key2] = $value2;
      }
   }
}

if (RG_EMULATION == 0) {
   // force register_globals = on
   unregisterGlobals();   
} else if (ini_get('register_globals') == 0) {
   // php.ini has register_globals = off and emulate = on
   registerGlobals();
} else {
   // php.ini has register_globals = on and emulate = on
   // just check for spoofing
   checkInputArray( $_FILES );
   checkInputArray( $_ENV );
   checkInputArray( $_GET );
   checkInputArray( $_POST );
   checkInputArray( $_COOKIE );
   checkInputArray( $_SERVER );

   if (isset( $_SESSION )) {
      checkInputArray( $_SESSION );
   }
}
?>
Бу...
то що відносно SQL ін'єкції?

з цим треба боротися особисто чи має хостер?
Joomla! 1.0.12 на сьогодні стабільна.
Помилки які призводять до хакерських атак - це помилки адміністраторів сайту, які не слідкують за сайтом і допускають помилки які описані тут: http://joomla-ua.org/forum/index.php/topic,167.0.html
Ще вичитав, потрібно зняти права на запис файлу configuration.php.
Я ж так і написав:

Код:
2. Права на файли CHMOD:

файлы      0664
папки       0775

це при хорошому розкладі б на всі треба було б робити Smile

але хоча б чмоди на кореневі файли виставте 0644
Dutch, поясни будь-ласка,що таке "CHMOD".Це абривіатура певних файлів?
Це права доступу до файлів та папок.
Ясно,а так не виникнуть проблеми з компонентами?
Ще одна проблемка:

У мене в кореневому каталозі 2 файли htaccess :
1 - .htaccess
2 - htaccess.txt

В першому при редагуванні не видно символів, а в другому строки "PHP register_globals" немає.
Другий файл - це просто рекомендовані налаштування від розробників Joomla! Можна його переіменувати і відкоректувати під себе.
Він ніяк не впливає на роботу сервера, працює лише просто .htaccess.
В мене пустий .htaccess . Якщо в ньому прописати php_value register_globals 0 то внутрішня помилка серверу випадає. Я ще не стикався з цими файлами. Поясни пліз, що з ним треба робити якщо всередині він пустий.
http://joomla-ua.org/forum/index.php/topic,167.0.html

php_value register_globals 0
заміни на
php_value register_globals off

А краще стягни останню версію джумли (1.0.12)
Видали всі файли із різним розширенням htaccess
З дистрибутиву закачай на сервер htaccess.txt та переіменуй його на .htaccess (зверни увагу перед htaccess повинна стояти крапка!!!)

Далі відкрий файл у блокноті та перед текстом закинь параметр:
php_value register_globals off

От і все!
Мені хостер скинув файл php.ini, сказав, що через нього я зможу настроїти все,що потрібно.Як саме можна його настроїти , щоб вирішити питання register_globals - on?Бо з htaccess не виходить.
Adaman Написав:Мені хостер скинув файл php.ini, сказав, що через нього я зможу настроїти все,що потрібно.Як саме можна його настроїти , щоб вирішити питання register_globals - on?Бо з htaccess не виходить.

в мене тех так було -  але так нічого не вийшло.

я їм написав - щоб вони там в себе  самі вручну зробили -  тоді вийшло.
А що саме треба їм в листі написати - виставити праметри register_globals - off на самому сервері?І в тебе зникли потім всі повідомлення в адмінці?Можна як можна докладніше про це діло будь-ласка?
От питання. А що хостер сказав потім з файлом робити?
"Настроить под свои нужды" Smile
Це ясно, а потім? Скинути його назад, перемістити в спеціальну папку на сервері?..
Добре я спитаю що з ним робити,думав тільки я не знаю.
Мені його в public_html скинули і все.Можу викласти сюди якщо цікаво зміст файлу.
Як на мене - те що скинув тобі хостер php.ini - то все фігня.
Типу треба робити так - панель адміністрування - DirectAdmin
1 крок
http://www.kostopil.eu/download/1.JPG[/img]
2 крок
http://www.kostopil.eu/download/2.JPG[/img]

але я так робив - то все не паше.

просто пишеш чувакам на хостер - мені треба register_globals off
і хай  ставлять вручну.
Цитую зворотній лист хостера:
1. Файл должен называться не ini.php, а php.ini (це я переплутав місцями)
2. php_flag работать на наших серверах не будет всё равно
3. просто в данном файле опцию register_globals поменяйте в значение
   Off, это осуществляется в любом текстовом редакторе на Вашем
   локальном компьютере.
Вручну все на офф встановив - а що далі?Адмінка всеодно "червона" Sad
Ось цей файл...

[вкладення вилучене Адміністратором]
Із ситуації, я так розумію, що у тебе хостер
http://hostpro.com.ua/

Вони дають можливість налаштовувати не тільки htaccess, але і php.ini

У багатьох хостерів php.ini не доступне, і тому можно юзати (навіть треба)  htaccess!!!

Smile
Сторінки: 1 2