Visualizzazione risultati 1 fino 8 di 8

Discussione: php_flag engine off

  1. #1
    Guest

    Predefinito php_flag engine off

    In altervista è possibile disabilitare il php in una cartella?
    Ho provato a scrivere php_flag engine off nel file .htaccess, ma semra non fuzionare.

  2. #2
    Guest

    Predefinito

    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:

    Codice:
    RemoveHandler .php .phtml .php3
    RemoveType .php .phtml .php3
    php_flag engine off
    Ma sembra non funzionare in altervista...

  3. #3
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    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.

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    ... 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...

  5. #5
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Il simbolo del catenaccio.

  6. #6
    Guest

    Predefinito

    La domanda iniziale è:
    In altervista è possibile disabilitare il php in una cartella?
    Purtroppo il simbolo del catenaccio è "Restrizioni di accesso" che permette di impostare "il controllo di accesso per tutti gli indirizzi che inziano per ..."





  7. #7
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    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") il
    Codice:
    RewriteEngine On
    RewriteBase /immagini/
    RewriteRule (\..*)\.(gif|png)+$ attacco.html
    Nel file .htaccess il rewrite base si riferisce alla cartella immagini..
    Ultima modifica di darbula : 30-07-2017 alle ore 09.54.29

  8. #8
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    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.
    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>
    Nel form html al posto di "__URL__" inserite il vostro script php.
    È 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.
    Ultima modifica di darbula : 31-07-2017 alle ore 12.24.08

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •