• User

    file .htaccess su server dedicato

    Ciao a tutti, chiedo scusa se sto inserendo nella sezione sbagliata.

    Ho un problema per la quale ho visto molte discussioni nel web e per la quale avrò fatto almeno una cinquantina di

    tentativi.
    Voglio semplicemente utilizzare il file .htaccess per impedire che, da altri siti ed anche dal mio sito, si possa scrivere

    il percorso completo di un immagine per vederla;ovviamente le immagini devono funzionare normalmente, se il codice delle

    pagine html/php del mio sito le richiama.

    Ho 3 situazioni da presentare.

    1. Se lavoro in ufficio, dove sul mio pc è installato Wamp (su Windows) ed utilizzo il codice seguente:

    Options Followsymlinks
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?127.0.0.1
    RewriteRule .(jpg|flv)$ [R,L]

    Funziona perfettamente, il sito carica tutte le immagini e se provo a scrivere il percorso completo sulla barra degli

    indirizzi mi da accesso negato.

    1. Se lavoro a casa, dove sul mio pc non è installato Apache ed ho un server a parte, utilizzo il codice seguente:

    Options Followsymlinks
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?nomeserver
    RewriteRule .(jpg|flv)$ [R,L]

    Il sito carica tutte le immagini, ma se provo a scrivere il percorso completo sulla barra degli indirizzi me le fa vedere.

    1. Se trasferisco il tutto sull'hosting (server dedicato Linux) ED E' QUI CHE DEVE FUNZIONARE, il codice è questo:

    Options Followsymlinks
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?dominio.com
    RewriteRule .(jpg|flv)$ [R,L]

    Anche qui il sito carica tutte le immagini, ma se provo a scrivere il percorso completo sulla barra degli indirizzi me le

    fa vedere.

    Le cartelle sono così strutturate:

    file .htaccess
    root->public->.htaccess e poi tutte le cartelle degli utenti con all'interno le immagini personali

    file index.php
    root->index.php

    altri file
    root->php->file.php

    Grazie in anticipo di un eventuale vostro aiuto


  • Moderatore

    Semplicemente in quella regola si permette ai blank referer di accedere alle immagini e per questo motivo è possibile vedere le immagini direttamente.

    La regola dev'essere fatta così

    
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?pippo.com 
    RewriteRule \.(jpg|flv)$ - [NC,F,L]
    
    

    è chiaro che così solo i file jpg e flv verificano la regola, eventuali gif, ecc... sono comunque visibili

    inoltre è importante verificare che .htaccess stia effettivamente funzionando, perchè può darsi che il server remoto non sia opportunamente configurato


  • User

    grazie, stasera provo subito, ora non posso accedere al server dedicato... ti faccio sapere


  • User

    Niente da fare; se scrivo il codice in questa maniera:

    #(questa riga ho dovuto aggiungerla, altrimenti non fonzionava da nessuna parte)
    Options Followsymlinks

    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?miosito.com
    RewriteRule .(jpg|flv)$ [NC,F,L]

    mi funziona a casa ed in ufficio, ma sul sito no.
    Sull'host non so come fare a verificare se mod rewrite è attivo, ma so che a casa mi dava errore finchè non ho attivato il modulo e quindi credo sia attivo anche sul dedicato, perchè errori non ne dà..... peccato però che non funziona.
    Se provo a creare degli errori di proposito, il sito va in errore, quindi i file .htaccess li legge.

    Hai delle alternative?

    Grazie


  • Moderatore

    In queso caso modifica la configurazione di apache come suggerito qui http://www.cyberciti.biz/faq/apache-mod_rewrite-hot-linking-images-leeching-howto/


  • User

    Fatto.
    Nel secondo caso della soluzione 1:

    Le immagini sul sito compaiono, ma posso anche vederle con link diretto.

    Nel primo caso della soluzione 1:

    Ho il risultato inverso; le immagini sul sito non vengono visualizzate, ma posso vederle con link diretto.

    Nel frattempo dall'hosting mi hanno passato la lista dei moduli attivi sul mio dedicato ed ora sono sicuro che mod rewrite è attivo; ecco la lista:

    [root@sd365816 ~]# apachectl -M

    Loaded Modules:

    core_module (static)

    authn_file_module (static)

    authn_default_module (static)

    authz_host_module (static)

    authz_groupfile_module (static)

    authz_user_module (static)

    authz_default_module (static)

    auth_basic_module (static)

    include_module (static)

    filter_module (static)

    deflate_module (static)

    log_config_module (static)

    logio_module (static)

    env_module (static)

    expires_module (static)

    headers_module (static)

    unique_id_module (static)

    setenvif_module (static)

    version_module (static)

    proxy_module (static)

    proxy_connect_module (static)

    proxy_ftp_module (static)

    proxy_http_module (static)

    proxy_scgi_module (static)

    proxy_ajp_module (static)

    proxy_balancer_module (static)

    ssl_module (static)

    mpm_prefork_module (static)

    http_module (static)

    mime_module (static)

    dav_module (static)

    status_module (static)

    autoindex_module (static)

    asis_module (static)

    suexec_module (static)

    cgi_module (static)

    dav_fs_module (static)

    dav_lock_module (static)

    negotiation_module (static)

    dir_module (static)

    actions_module (static)

    userdir_module (static)

    alias_module (static)

    rewrite_module (static)

    so_module (static)

    suphp_module (shared)

    Syntax OK

    Come mai non c'è verso di far funzionare la cosa? Cosa sbaglio? Hai altre idee?

    Grazie della pazienza


  • Moderatore

    Come ho scritto sopra conviene lasciar perdere htaccess e modificare la configurazione del vhost in apache.

    Inoltre quando fai queste prove installa Livehttpheaders https://addons.mozilla.org/en-US/firefox/addon/live-http-headers/ su firefox e prova al fare il debug della connessione.

    Il punto è che quelle regole dicono al webserver di visualizzare quelle immagini quando il referer è il dominio stesso.


  • User

    in pratica vuoi dire che devo inserire le stesse righe di codice direttamente sul file httpd.conf di Apache e di non usare .htaccess, giusto?


  • Moderatore

    No, non sono le stesse. E' spiegato come fare nel link che ho postato.


  • User

    conosci directadmin?
    perchè, dato che non riesco a raggiungere il file httpd.conf sul server, ho notato che puoi editarlo dall'interfaccia di direct admin; però non è completo (per esempio non mostra i moduli attivi ed ho docuto chiedere all'host); credi che possa aggiugere le righe a quel file e poi riavviare? ho solo un pò di insicurezza


  • Moderatore

    Mai usato directadmin, comunque c'è la guida qui http://help.directadmin.com/