Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Imperire accesso diretto a file

    Ciao,
    Che metodi ci sono per impedire l'acesso diretto a un file?
    In questo caso se accedi sql.php vieni rispedito all'index.

    Codice PHP:
    if (!eregi("sql.php"$_SERVER['PHP_SELF'])) { 
    header("Location: index.php"); 

    Ne conoscete altri?


    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    181
    Impostazioni dei permessi delle cartelle e dei file credo

  3. #3
    Utente di HTML.it L'avatar di phpeer
    Registrato dal
    Feb 2012
    Messaggi
    76
    eregi() è stato deprecato, puoi usare un if normale no?

    Codice PHP:
    if ("sql.php" == $_SERVER['PHP_SELF']) {  
    header("Location: index.php");  


  4. #4
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Imposti una costante e controlli se nel file è settata o meno. Se per esempio sql.php lo includi automaticamente sql.php avrà la variabile settata, se chiami sql.php direttamente la variabile non è settata e fai un redirect.

  5. #5
    Originariamente inviato da Ranma2
    Imposti una costante e controlli se nel file è settata o meno. Se per esempio sql.php lo includi automaticamente sql.php avrà la variabile settata, se chiami sql.php direttamente la variabile non è settata e fai un redirect.

    Questo lo metto nella pagina index.php

    <?php
    define("ACCESSO",true);
    ?>


    e questo in sql.php

    <?php
    if(!defined("ACCESSO")){
    header("Location: error_page.php");
    }
    ?>

    però la soluzione di phpeer mi sembra più semplice.

    Alla fine la differenza dove sta?

  6. #6
    Originariamente inviato da phpeer
    eregi() è stato deprecato, puoi usare un if normale no?

    Codice PHP:
    if ("sql.php" == $_SERVER['PHP_SELF']) {  
    header("Location: index.php");  

    Si, penso che sia più semplice per mantenere il codice.
    Però non dovrebbe essere diverso (!=) invece di uguale (==) ??

  7. #7
    Non potresti semplicemente bloccare l'accesso al file?

    $fp=fopen($nomefile,"R+");
    flock($fp,2);



    Mentre per sbloccare:
    flock($fp,5);

  8. #8
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    PHP_SELF è il file che viene eseguito, quindi se è uguale fai il redirect, però non è a prova di errore quel codice, per ogni file devi portarti dietro il nome ricordandoti che rinominandolo dovrai modificarlo.

  9. #9
    Utente di HTML.it L'avatar di Ranma2
    Registrato dal
    Mar 2003
    Messaggi
    2,648
    Originariamente inviato da Anaconda25
    Non potresti semplicemente bloccare l'accesso al file?

    $fp=fopen($nomefile,"R+");
    flock($fp,2);



    Mentre per sbloccare:
    flock($fp,5);
    E' impensabile che ad ogni chiamata vado a toccare il file ed interagire con il filesystem.

  10. #10
    OK, però se richiamo il file sql.php direttamente, invece di fare il redirect mi mostra una pagina in bianco e rimane su sql.php

    dove sbaglio ://

    Codice PHP:
    if ("sql.php" == $_SERVER['PHP_SELF']) {   
    header("Location: index.php");   


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.