Domanda

Ho scritto uno script che prende il riepilogo di un ordine e lo archivia in un file XML, tranne per il fatto che non voglio che le persone siano in grado di aprire il file XML nel loro browser, ovviamente.

Sono ospitato su un server condiviso molto complicato con capacità limitate: niente SSH, per cominciare.

C'è un posto dove posso mettere questo file in modo che PHP sia ancora in grado di leggerlo / scriverlo, ma i browser web non saranno in grado di raggiungerlo?

Di solito, creerei una cartella fuori dalla radice del documento e la inserisco lì, ma ottengo un'Autorizzazione negata " messaggio quando lo provo.

Le cartelle che sono sono:

  • anon_ftp
  • bin
  • cert
  • cgi-bin
  • conf
  • error_docs
  • etc
  • httpdocs
  • httpsdocs
  • PD
  • privati ??
  • statistiche
  • sottodomini
  • web_users

PHP non può accedere al file quando si trova nella cartella private . Questo sarebbe possibile utilizzando .htaccess?

È stato utile?

Soluzione 2

Ci ho aggirato inserendo il file XML nella mia cartella httpdocs, ma ho aggiunto un file .htaccess con questo in esso:

<Files ~ "myfile.xml">
    Order allow,deny
    Deny from all
</Files>

Altri suggerimenti

È possibile creare una directory contenente un file .htaccess simile al seguente:

Deny from all

Questo indicherà ad Apache di non servire file da quella directory; qualsiasi tentativo di accedere alla directory o al suo contenuto verrà soddisfatto con un "403 proibito". risposta dal server.

Nota: dipende dal fatto che l'host non abbia rimosso Limit dall'elenco di opzioni nella direttiva AllowOverride ; la maggior parte degli host condivisi non dovrebbe avere un motivo per farlo.

Non potresti chiedere al provider di hosting condiviso di creare una cartella root-web per te ? L'ho sicuramente fatto in passato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top