Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    58

    Evitare accesso diretto file PHP JSON

    Evitare accesso diretto file PHP JSON



    Vorrei fare in modo che i miei file php, nei quali c'è codice JSON, non siano accessibili se ad esempio vengono aperti direttamente, quindi andando direttamente al loro link. Ho provato con diversi codici php in giro per il web e funzionano, ma mi precludono il funzionamento del mio sistema poiché inibiscono anche la funzione include dei file stessi in altri script php.

    Quindi vorrei permettere l'utilizzo dal mio sistema, ma se provo ad accedere direttamente al file con URL vorrei restituire un errore.

    Grazie

  2. #2
    Basta impostare un qualche valore con define() e verificare che esso sia impostato per permettere l'accesso alla pagina.
    Qualcosa del tipo:

    Codice PHP:
    @defined('VALORE') or die("Messaggio."); 

    Ovviamente la cosa va gestita anche a monte per fare in modo che gli include continuino a funzionare. Se hai un punto di ingresso unico alle pagine ti basta definire il valore lì.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    58
    Quote Originariamente inviata da satifal Visualizza il messaggio
    Basta impostare un qualche valore con define() e verificare che esso sia impostato per permettere l'accesso alla pagina.
    Qualcosa del tipo:

    Codice PHP:
    @defined('VALORE') or die("Messaggio."); 

    Ovviamente la cosa va gestita anche a monte per fare in modo che gli include continuino a funzionare. Se hai un punto di ingresso unico alle pagine ti basta definire il valore lì.
    ho un file php incluso in tutte le pagine. Quindi ho proceduto a inserire questo:
    Codice PHP:
    define('UNABLE','active'); 
    e poi questo nella pagina php da non permettere l'accesso diretto:
    Codice PHP:
    defined('UNABLE') or die("access denied"); 
    ma non funziona comunque!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    58
    il problema è dato dal fatto che io non includo il file php ma semplicemente utilizzo il codice json tramite questa funzione.

    Codice PHP:
    function GetJsonFeed($json_url){    $feed file_get_contents($json_url);    return json_decode($feedtrue);} 

  5. #5
    Se quei file non devono essere accessibili direttamente ma solo tramite inclusione via codice, puoi semplicemente metterli in una directory fuori dalla document root del sito.

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    58
    Quote Originariamente inviata da k.b Visualizza il messaggio
    Se quei file non devono essere accessibili direttamente ma solo tramite inclusione via codice, puoi semplicemente metterli in una directory fuori dalla document root del sito.
    Questi file sono già in una loro directory. E non vengono mai inclusi ma semplicemente come già detto vengono estratti i dati con quella funzione.

  7. #7
    Inclusi e' un termine generico, non intendevo per forza con include()

    Comunque il punto non era metterli in una loro directory, ma metterli in una directory fuori dalla document root.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    58
    Ti spiego. Io in htaccess ho questo codice che mi toglie la cartella di radice dall'url

    codice HTML:
    RewriteCond %{THE_REQUEST} ^GET\ /cartella/RewriteCond %{HTTP_HOST} ^(www\.)?sito.org$RewriteRule ^cartella/(.*) /$1 [L,R=301]RewriteCond %{HTTP_HOST} ^(www\.)?sito.org$RewriteRule !^cartella/ cartella%{REQUEST_URI} [L]
    ora io ho creato una cartella fuori dalla mia document root, ma credo che per via di quel codice mi viene identificato sempre come all'interno della cartella che nascondo! Come posso fare?

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    58
    fra l'altro se non sono nella document root rimane comunque il problema poiché dopo dovrei comunque richiamarli dalla funzione con json_decode e non sarebbero accessibili. quindi credo che il problema da risolvere sia questo: come permettere il json_decode solo sui miei script e non aprendo la pagina php.

  10. #10
    Basta che a file_get_contents() dai il path fisico del file invece dell'url.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.