Back to top

Autore Topic: PHP register_globals setting is `ON` instead of `OFF`  (Letto 5337 volte)

Offline xan

  • Nuovo arrivato
  • *
  • Post: 2
    • Mostra profilo
da quello che ho visto ci sono in rete mille milioni di tread con questo titolo...

sorry per l'ennesimo... ma proprio non ho capito come risolverlo

so è un problema di sicurezza che non è gravissimo ma è meglio risolverlo

sono alle prime armi con joomla ... need more help...

appena istallato mi ha dato 2 warning

1 l'ho risolto mettendo a 0 "define( 'RG_EMULATION', 0 );" in globals.php

Citazione
<?php
/**
 * @version $Id: globals.php 4675 2006-08-23 16:55:24Z stingrey $
 * @package Joomla
 * @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 * Joomla! is free software and parts of it may contain or be derived from the
 * GNU General Public License or other free or open source software licenses.
 * See COPYRIGHT.php for copyright notices and details.
 */

// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );

/**
 * Use 1 to emulate register_globals = on
 * WARNING: SETTING TO 1 MAY BE REQUIRED FOR BACKWARD COMPATIBILITY
 * OF SOME THIRD-PARTY COMPONENTS BUT IS NOT RECOMMENDED
 *
 * Use 0 to emulate regsiter_globals = off
 * NOTE: THIS IS THE RECOMMENDED SETTING FOR YOUR SITE BUT YOU MAY
 * EXPERIENCE PROBLEMS WITH SOME THIRD-PARTY COMPONENTS
 */
define( 'RG_EMULATION', 0 );

/**
 * 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 ' . implode( ' or ', $banned ) . ' 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 = off
   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 );
   }
}
?>

ma il secondo non riesco proprio a sistemarlo

PHP register_globals setting is `ON` instead of `OFF`

da quello che ho capito bisogna toccare il file hatcess.txt e creare un file .hatcess (non ho capito se bisogna fare tutte e 2 o una cosa sola)

oppure andare a scrivere in ogni cartella un file php.ini

ho accesso totale al dominio... sono l'amministratore...

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: PHP register_globals setting is `ON` instead of `OFF`
« Risposta #1 il: 21 Apr 2007, 13:03:46 »
Rinomina il file htaccess.txt in .htaccess ed inserisci la seguente riga:

Codice: [Seleziona]
php_flag register_globals off
Non funziona su tutti i server però.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline belabe

  • Esploratore
  • **
  • Post: 66
    • Mostra profilo
Re: PHP register_globals setting is `ON` instead of `OFF`
« Risposta #2 il: 21 Apr 2007, 22:10:07 »
pure io ho lo stesso problema.
Ho rinominato il file htaccess.txt in .htaccess ed aggiunto la riga php_flag register_globals off in fondo al file ma mi restituisce il seguente errore: Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator ...

Il mio sito è su un server linux aruba.
Ciao

Offline angelcs

  • Appassionato
  • ***
  • Post: 689
  • Sesso: Maschio
  • SEO
    • Mostra profilo
Re: PHP register_globals setting is `ON` instead of `OFF`
« Risposta #3 il: 21 Apr 2007, 23:29:02 »
Ragazzi, scusatemi ma ho questo dubbio da tanto tempo.

Il mio provider mi ha detto che sul mio server dedicato avrei potuto cambiare questa funzione sotto esplicita richiesta, ma mi hanno anche detto che altre applicazioni potrebbero potrebbero non funzionare correttamente.

Allora mi chiedevo se fosse davvero importante cambiare questa funzione su un Server Dedicato che utilizza Plesk per mantenere al meglio la sicurezza oppure se ci fosse un'alternativa per professionisti del settore per mantenere sicuri i server venduti.

spero in un vostro consiglio, vi saluto e vi ringrazio.

Offline xan

  • Nuovo arrivato
  • *
  • Post: 2
    • Mostra profilo
Re: PHP register_globals setting is `ON` instead of `OFF`
« Risposta #4 il: 22 Apr 2007, 21:06:57 »
ti dico quello che ho capito

in pratica è come se avessi 1 porta su un router sempre aperta.
pro: puoi fare varie cose con quella porta aperta . ad esempio mettere un server qualsiasi
contro: porta aperta = piu possibbilita attacchi vari...

parallelamente per joomla
pro:è una "cosa" (dico cosa perche non ho capito esattamente cosa sia) che permette l'utilizzo di vario software
contro: sistema piu fragile...

se ho detto una cavolata smentitemi....


per quanto riguarda il problema:
grazie per la spiegazione ma se lo faccio mi da internal server error
il sito è sul provider ar*ba è un problema? (che se non sbaglio corrisponde in nome in codice sgaragnao, no?)

Offline maria.p

  • Abituale
  • ****
  • Post: 1045
    • Mostra profilo
Re: PHP register_globals setting is `ON` instead of `OFF`
« Risposta #5 il: 22 Apr 2007, 21:27:14 »
XAN per quanto riguarda il tuo secondo problema su sgaragnao non puoi fare nulla in quanto dovresti avere accesso alle impostazioni del server, essere l'amministratore del dominio purtroppo non basta

Offline angelcs

  • Appassionato
  • ***
  • Post: 689
  • Sesso: Maschio
  • SEO
    • Mostra profilo
Re: PHP register_globals setting is `ON` instead of `OFF`
« Risposta #6 il: 26 Apr 2007, 19:10:50 »
grazie per la risposta,
potete confermarmi che sia davvero così pericoloso.

Perchè installando diverse applicazioni open source con Plesk ogni sito mamma a le sue caratteristiche di sicurezza e dovrei modificare diverse cose se dovessi tenermi a le loro regole di sicurezza, ma immagino forse male che un provider dovrebbe mantenere altre misure di sicurezza e non solo per prevenire attacchi via web come in questo caso.

Comunque loro mi assicurano che da 3 anni non anno mai ricevuto attacchi del genere, anche se ci credo poco, e gli ho fatto notare queste ed altre cose.

avete consigli?

 



Web Design Bolzano Kreatif