In altervista è possibile disabilitare il php in una cartella?
Ho provato a scrivere php_flag engine off nel file .htaccess, ma semra non fuzionare.
Printable View
In altervista è possibile disabilitare il php in una cartella?
Ho provato a scrivere php_flag engine off nel file .htaccess, ma semra non fuzionare.
Nella pagina
http://crysweb.altervista.org/2013/0...php-piu-sicure viene riportato il codice per i file .htaccess all’interno delle cartelle con delle direttive che bloccano l’esecuzione di codice PHP o in generale di tutto il codice lato server:
Ma sembra non funzionare in altervista...Codice:RemoveHandler .php .phtml .php3
RemoveType .php .phtml .php3
php_flag engine off
Puoi effettuare una ricerca del php_flag engine off nel manuale php? Questo flag si può utilizzare solo se il php è caricato come modulo di apache, attualmente nessun php è caricato come modulo di apache qui su altervista. Se vuoi bloccare una cartella accedi al pannello di controllo sezione gestione file e blocca la cartella desiderata.
Grazie Darbula, ma come si blocca una cartella?
Avendo ad esempio la cartella /public/, e accedendo al Pannello di controllo -> Applicazioni -> Gestione file, vedo le opzioni PHP5, FTP, Invia files, Sposta, Copia, Cancella, Crea file, Crea pagina con editor e Crea cartella. Ma non vedo Blocca...
Il simbolo del catenaccio.
La domanda iniziale è:
Purtroppo il simbolo del catenaccio è "Restrizioni di accesso" che permette di impostare "il controllo di accesso per tutti gli indirizzi che inziano per ..."Citazione:
In altervista è possibile disabilitare il php in una cartella?
:confused:
:???:
Scusami non avevo capito.. Allora si hanno a disposizione una cartella ".dummy" inaccessibile da web, e la cartella da transazione, verifica $_FILES['urserfile']['name'][0] e $_FILES['userfile']['temp_name'][0] se ha un .php o phtml o nella peggiore dell'ipotesi se ha due punti rinomina il nome del file a tuo piacimento altrimenti usa un redirect interno (non esterno "remoto") ilNel file .htaccess il rewrite base si riferisce alla cartella immagini..Codice:RewriteEngine On
RewriteBase /immagini/
RewriteRule (\..*)\.(gif|png)+$ attacco.html
Scusate il doppio post, anche se ci fosse la possibilità di disattivare il php sarebbe solo un rimedio è non una soluzione, in quanto è vero che APACHE esegue un php ma è anche vero che cose del tipo file.gif.png non sono veri file.. Si dovrebbe filtrare con una lista di file permessi... Immaginiamo di lavorare con la cartella di default per i file temporanei, passare il file con una lista di estensiozioni e salvarlo nella cartella immagini.
Nel form html al posto di "__URL__" inserite il vostro script php.Codice PHP:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>upload</title>
</head>
<body>
<?php
if (isset($_FILES['userfile']['name'][0],$_FILES['userfile']['tmp_name'][0])) {
$id = 100000000;
foreach ($_FILES['userfile']['error'] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$tmp_name = $_FILES['userfile']['tmp_name'][$key];
$name = $_FILES['userfile']['name'][$key];
$file = explode('.',$name);
if(($split = count($file)) == 1){
$file[1] = '';
}
else{
$split -= 1;
}
$file[0] = (string)$id.time();
$i = 1;
$start[0] = false;
for (; $i <= $split;) {
if(($start[$i] = (stripos($file[$i],'gif') === 0 || stripos($file[$i],'png') === 0 || stripos($file[$i],'jpeg') === 0 || stripos($file[$i],'jpg') === 0 || stripos($file[$i],'tgz') === 0 || stripos($file[$i],'tar') === 0) && $start[$i-1] === false) || $start[$i-1] === true && stripos($file[$i-1],'tar') === 0 && stripos($file[$i],'gz') === 0) {
$file[$i] = strtolower($file[$i]);
}
else{
$start[$i] = true;
echo '<p>file non permesso</p>';
unset($id,$temp_name,$name,$file,$split,$start,$_FILES['userfile']);
break(2);
}
$i++;
}
$name = implode('.',$file);
move_uploaded_file($tmp_name,"immagini/$name");
}
}
}
?>
<!-- Tipo di codifica dei dati, DEVE essere specificato come segue -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE deve precedere campo di input del nome file -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Il nome dell'elemento di input determina il nome nell'array $_FILES -->
Send this file: <input name="userfile[]" type="file" />
<input type="submit" value="Send File" />
</form>
</body>
</html>
È un esempio che sfrutta la logica dei codici di errori.. Creo un fantomatico id (simulò una richiesta da un database, dite che 900 milioni di account potrebbero bastare? :D, per ordinare gli id sarebbe bene impostare l'autoincremto al primo numero disponibile in fase di registrazione)
Se il file ricevuto non contiene errori allora verifico che sia gif,.png,.jpeg,.jpg,.tgz,.tar.gz.. Se lo sono rinomino l'estensioni in minuscolo e poi procedo spostandolo nella cartella designita il nome sarà id+timestamp.estensione.