Joomla.it Forum

Joomla! 3 => Joomla! 3 => : Simonesabo 26 Oct 2016, 22:55:55

: [RISOLTO] bloccare PHP se non sono loggato
: Simonesabo 26 Oct 2016, 22:55:55
Ciao a tutti ragazzi.
Ho creato un sito Domotica, dove chi si logga visualizza I menu nascosti e premendo gli articoli richiamo dei file php che eseguono degli script. Il problema e che se punto direttamente il file Esempio www.ciao/prova.php (http://www.ciao/prova.php)
mi esegue anche se non sono loggato il file php.Come si fa a ristringere l'accesso al file solo a chi è collegato.
Suggerimenti? Spero di essere stato chiaro.
Grazie a tutti  8)
: Re:bloccare PHP se non sono loggato
: conti1 26 Oct 2016, 23:15:15
ciao
il tuo prova.php cose una pagina a se al difuori di joomla?
: Re:bloccare PHP se non sono loggato
: $Red 26 Oct 2016, 23:19:55
Ciao
ciao
il tuo prova.php cose una pagina a se al difuori di joomla?
da come ha scritto secondo me si! non ci capisco molto di queste cose ma penso che la soluzione migliore sia inserire i codici che sono attualmente su file php esterni all'interno di articoli di joomla con sourcerer (https://extensions.joomla.org/extension/sourcerer)
: Re:bloccare PHP se non sono loggato
: conti1 26 Oct 2016, 23:25:16
se è un file esterno
fa prima a proteggere il file tramite pw , ne creto proppio una a doc x un cliente file esterno con protezione pw
se sa scrivere un poco di php e un po js fa il tutto sensa problemi, in alternativa in rete ci sono  gia script  che fanno puo o meno quel che chiede poi lo adatta alle sue esigenge.
con pagina protetta  anche si arrivano non si apre
: Re:bloccare PHP se non sono loggato
: Simonesabo 27 Oct 2016, 19:17:39
Essatto utilizzo file esterni. Sto cercando una soluzione è vorrei capire se è fattibile, Utilizzare il file index.php,
nella pagine dove ho gli script vorrei fare include("index.php).Ho provato e funziona se e solo se i file sono collocati dove ho index.php se invece sono sotto cartelle mi da un errore 500.
Grazie :)

Il Mio index.php

<?php

define('JOOMLA_MINIMUM_PHP', '5.3.10');

if (version_compare(PHP_VERSION, JOOMLA_MINIMUM_PHP, '<'))
{
    die('Your host needs to use PHP ' . JOOMLA_MINIMUM_PHP . ' or higher to run this version of Joomla!');
}

define('_JEXEC', 1);

if (file_exists(__DIR__ . '/defines.php'))
{
    include_once __DIR__ . '/defines.php';
}

if (!defined('_JDEFINES'))
{
    define('JPATH_BASE', __DIR__);
    require_once JPATH_BASE . '/includes/defines.php';
}

require_once JPATH_BASE . '/includes/framework.php';

// Mark afterLoad in the profiler.
JDEBUG ? $_PROFILER->mark('afterLoad') : null;

// Instantiate the application.
$app = JFactory::getApplication('site');

// Execute the application.
$app->execute();
: Re:bloccare PHP se non sono loggato
: tomtomeight 27 Oct 2016, 20:02:05
Mischiare file esterni senza sapere bene cosa si sta facendo può solo aggiungere vulnerabilità. Se chiarisci cosa fa il file esterno, forse lo puoi implementare come componente.
: Re:bloccare PHP se non sono loggato
: Simonesabo 27 Oct 2016, 20:50:06
Grazie per la risposta, credo che hai perfettamente ragione. In pratica il file Esterno mi avvia una connessione in SSH per Comunicare con Raspberry e dare comandi Esempio: Accendi la Luce. Ecco perchè voglio proteggere bene questi file e non so come fare :( :( vorrei farli eseguire solo a chi è loggato, scusa ma in materia non sono un gran che :( grazieee ancora  :D
: Re:bloccare PHP se non sono loggato
: MariaElenaBoschi 27 Oct 2016, 21:02:36
l'unico modo è di scrivere un estensione per joomla altrimenti non hai sicurezza.
inoltre i dati andranno filtrati anche all'arrivo anche se usi ssh. (difficilmente chi scrive per raspberry piuttosto che per arduino pensa alla sicurezza)

I danni che stanno facendo in questi giorni sono dovuti in maggior parte a strumenti domotici non sicuri
: Re:bloccare PHP se non sono loggato
: tomtomeight 27 Oct 2016, 23:09:42
Beh c'era da aspettarselo che il momento che joomla sarebbe servito pure per fare il caffè prima o poi sarebbe arrivato e con l'iot (internet of things) ormai alla portata di tutti tutto diventa possibile. Bisognerebbe però tenere in alta anzi altissima attenzione l'aspetto sicurezza.
: Re:bloccare PHP se non sono loggato
: Simonesabo 29 Oct 2016, 17:53:54
Per adesso luci, antifurto, videocamera per il caffe ci sto lavorando ahhaha ;) grazie a tutti! sto provando con il file .htaccess solo che non funziona ecco il contenuto del file:

<Files ~ ".php">
Order allow,deny
Deny from all
Satisfy All
</Files>

lo inserito nella cartella dove sono presenti i file .php ma riesco comunque ad eseguirli, non mi blocca niente ovviamenti i permessi del file .htaccess sono 755, come si fa ad abilitarlo??  Grazieeee
: Re:bloccare PHP se non sono loggato
: Alex21 29 Oct 2016, 18:51:04
Essatto utilizzo file esterni. Sto cercando una soluzione è vorrei capire se è fattibile, Utilizzare il file index.php,
nella pagine dove ho gli script vorrei fare include("index.php).Ho provato e funziona se e solo se i file sono collocati dove ho index.php se invece sono sotto cartelle mi da un errore 500.
Grazie :)
Ciao Simonesabo,
c'è una tecnica di joomla per vedere se è presente un user.
Ti riporto del codice ottenuto con un piccolo ritocco dei quello della documentazione.
Bisogna vedere il valore che ha ["guest"]. Se è 1 dovrebbe esserci un utente joomla loggato. Ma controlla la documentazione per il valore giusto.
:
<?php
if (!defined('_JEXEC')){
// Initialize Joomla framework
define('_JEXEC'1);
}


// Load system defines
if (file_exists(dirname(__FILE__) . '/defines.php')){
require_once dirname(__FILE__) . '/defines.php';
}
if (!
defined('JPATH_BASE')){
define('JPATH_BASE'dirname(__FILE__));
}
if (!
defined('_JDEFINES')){
require_once JPATH_BASE '/includes/defines.php';
}


// Get the framework.
require_once JPATH_BASE '/includes/framework.php';


$app JFactory::getApplication('site');
$app->initialise();


$user JFactory::getUser();
echo 
"id:".$user->id;


echo 
'<br>';
var_dump($user);


/*
id:0
object(JUser)#44 (26) {
["isRoot":protected]=> bool(false) 
["id"]=> int(0) 
["name"]=> NULL 
["username"]=> NULL 
["email"]=> NULL 
["password"]=> NULL 
["password_clear"]=> string(0) "" 
["block"]=> NULL 
["sendEmail"]=> int(0) 
["registerDate"]=> NULL 
["lastvisitDate"]=> NULL 
["activation"]=> NULL 
["params"]=> NULL 
["groups"]=> array(1) {
[0]=> string(1) "1" 

["guest"]=> int(1) 
["lastResetTime"]=> NULL 
["resetCount"]=> NULL 
["requireReset"]=> NULL 
["_params":protected]=> object(Joomla\Registry\Registry)#45 (2) {
["data":protected]=> object(stdClass)#46 (0) { } 
["separator"]=> string(1) "." 

["_authGroups":protected]=> array(1) { [0]=> int(1) } 
["_authLevels":protected]=> array(2) { [0]=> int(1) [1]=> int(1) }
["_authActions":protected]=> NULL 
["_errorMsg":protected]=> NULL 
["userHelper":protected]=> object(JUserWrapperHelper)#47 (0) { } 
["_errors":protected]=> array(0) { } 
["aid"]=> int(0) 
}
*/
Ciao!
: Re:bloccare PHP se non sono loggato
: Simonesabo 30 Oct 2016, 12:21:04
Grande Funziona :) ho inserito il file protezione.php, poi nel mio file php ho scritto il seguente codice:


include('protezione.php');   
               
     if ($user->guest == 0 ){

  echo 'Connesso';       
 Codicephp....
   
    }

    else
    {

 Codicephp....
    header("location: http://miosito.it/index.php");     
 
    }

Grazie mille Alex :)))
: Re:bloccare PHP se non sono loggato
: Alex21 30 Oct 2016, 16:55:22
Grande Funziona :) ho inserito il file protezione.php, poi nel mio file php ho scritto il seguente codice:
Avevo il sospetto che quel frammento messo via tempo fa potesse servire ...
Felice di essere stato utile.
Ciao!