Joomla.it Forum
Joomla! 3 => Joomla! 3 => : 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)
-
ciao
il tuo prova.php cose una pagina a se al difuori di joomla?
-
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)
-
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
-
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();
-
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.
-
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
-
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
-
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.
-
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
-
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!
-
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 :)))
-
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!