You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Peter Stoehr <st...@gaynet.at> on 2003/01/12 03:53:54 UTC

SetEnvIfNoCase - .htaccess Problem

Hallo Leute,

ich versuche mich gerade an folgendem Problem: wenn jemand im internen Netz
die Adresse http://intranet anwaehlt, soll der Apache einen 301er-Code
schicken und nach https://intranet umleiten. Auf diesem Server gibt es noch
ein Unterverzeichnis /secure . In diesem Verzeichnis liegt die
welcome.shtml, in welche auch Graphiken eingebunden sind.
Weiters soll vermieden werden, dass der User die Graphiken durch direktes
anwaehlen sehen kann. Die Graphiken sollen immer nur im Zuge der
welcome.shtml angezeigt werden.
Das Verzeichnis /secure soll passwortgeschuetzt sein, allerdings sollte ein
Client (ich) nicht nach UID/PWD gefragt werden.

Das mit dem Redirect (http -> https) funktioniert.
Einloggen kann sich der User auch.
Das Problem ist, dass die Graphiken zwar geladen werden (via
/secure/welcome.shtml), nur kann er diese auch direkt anwaehlen
(/secure/images/logo.jpg). Wenn ich in /secure/.htaccess die Directive
_satisfy any_ nach _satisfy all_ setze, dann funktioniert das zwar mit den
Graphiken, allerdings werde ich dann nach UID/PWD gefragt, und der Rest wird
einfach nicht reingelassen.

Hat hier jemand eine Idee zu diesem Thema? Anbei noch einige
Konfigurationsdaten.

<Auszug_httpd.conf>

# intranet
<VirtualHost 192.168.1.71:80>
Redirect permanent / https://intranet/
ServerName intranet
DocumentRoot /var/www/intranet/htdocs/
ScriptAlias /cgi-bin/ /var/www/intranet/cgi-bin/
TransferLog "|/usr/sbin/cronolog /var/www/intranet/logs/access_log.%Y%m%d"
LogFormat combined
ErrorLog "|/usr/sbin/cronolog /var/www/intranet/logs/error_log.%Y%m%d"
#CustomLog "|/usr/sbin/cronolog /var/www/intranet/logs/mod_gzip.%Y%m%d"
common_with_mod_gzip_info2
</VirtualHost>

# SSL intranet
<VirtualHost 192.168.1.71:443>
ServerName intranet
DocumentRoot /var/www/intranet/htdocs/
ScriptAlias /cgi-bin/ /var/www/intranet/cgi-bin/
TransferLog "|/usr/sbin/cronolog
/var/www/intranet/logs/ssl_access_log.%Y%m%d"
LogFormat combined
ErrorLog "|/usr/sbin/cronolog /var/www/intranet/logs/ssl_error_log.%Y%m%d"
#CustomLog "|/usr/sbin/cronolog /var/www/intranet/logs/ssl_mod_gzip.%Y%m%d"
common_with_mod_gzip_info2

SetEnvIfNoCase Referer intranet\/secure\/welcome\.shtml intra_site_referal

<Directory /var/www/intranet/htdocs/secure/images>
    <FilesMatch ".(gif|jpg|jpeg|png)">
        Order Allow,Deny
        Allow from env=intra_site_referal
    </FilesMatch>
</Directory>

SSLEngine on
SSLCertificateFile      "/etc/apache/intranet.crt"
SSLCertificateKeyFile   "/etc/apache/intranet.key"
SetEnvIf User-Agent ".*MSIE.*" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
</VirtualHost>

</Auszug_httpd.conf>
~~~~~~~~~~~~~~~~~~~~
<Auszug_/var/www/intranet/htdocs/secure/.htaccess>

AuthName pinklx03
AuthType Basic
AuthUserFile /var/www/intranet/wartung/secure/html.passwd
require valid-user
order deny,allow
deny from all
allow from 192.168.1.30
satisfy any
SSLRequireSSL

</Auszug_/var/www/intranet/htdocs/secure/.htaccess>


Besten Dank fuer die Hilfe und einen (fast) morgendlichen Gruss aus Wien,

Peter



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: Loesung: SetEnvIfNoCase - .htaccess Problem

Posted by Peter Stoehr <st...@gaynet.at>.
> * Peter Stoehr <st...@gaynet.at> [030113 01:51]:
> > [...]
> > Zu guter Letzt wird im Verzeichnis /secure/images noch eine 
> .htaccess mit
> > folgenden Inhalt erstellt:
> > 
> > SetEnvIfNoCase Referer intranet intra_site_referal=1
> > <FilesMatch ".(gif|jpg|jpeg|png)">
> >     Order allow,deny
> >     allow from env=intra_site_referal
> > </FilesMatch>
> 
> Die Loesung ist ziemlich unschoen.  Es gibt viele Leute, die
> ihren Browser oder Proxy so konfiguriert haben, dass er
> _keinen_ Referer mitschickt, selbst wenn er koennte.

Momentan faellt mir keine bessere Loesung ein.


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: Loesung: SetEnvIfNoCase - .htaccess Problem

Posted by Thomas Bader <th...@trash.net>.
* Peter Stoehr <st...@gaynet.at> [030113 01:51]:
> [...]
> Zu guter Letzt wird im Verzeichnis /secure/images noch eine .htaccess mit
> folgenden Inhalt erstellt:
> 
> SetEnvIfNoCase Referer intranet intra_site_referal=1
> <FilesMatch ".(gif|jpg|jpeg|png)">
>     Order allow,deny
>     allow from env=intra_site_referal
> </FilesMatch>

Die Loesung ist ziemlich unschoen.  Es gibt viele Leute, die
ihren Browser oder Proxy so konfiguriert haben, dass er
_keinen_ Referer mitschickt, selbst wenn er koennte.

-- 
<https://trash.net/~thomasb/>   PGP and OpenPGP encrypted mail preferred.
"A million dead poets would gladly attest: heart-ache's a keepsake
 to remind us we're living."
	-- Skyclad - Isn't What It Used To Be

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Loesung: SetEnvIfNoCase - .htaccess Problem

Posted by Peter Stoehr <st...@gaynet.at>.
Hallo Leute,

hab' das Problem loesen koennen. Die SetEnvIfNoCase-Directive und den
<Directory> Container hab ich aus der httpd.conf wieder entfernt:

# SSL intranet
<VirtualHost 192.168.1.71:443>
ServerName intranet
DocumentRoot /var/www/intranet/htdocs/
ScriptAlias /cgi-bin/ /var/www/intranet/cgi-bin/
TransferLog "|/usr/sbin/cronolog
/var/www/intranet/logs/ssl_access_log.%Y%m%d"
LogFormat combined
ErrorLog "|/usr/sbin/cronolog /var/www/intranet/logs/ssl_error_log.%Y%m%d"
#CustomLog "|/usr/sbin/cronolog /var/www/intranet/logs/ssl_mod_gzip.%Y%m%d"
common_with_mod_gzip_info2
SSLEngine on
SSLCertificateFile      "/etc/apache/intranet.crt"
SSLCertificateKeyFile   "/etc/apache/intranet.key"
SetEnvIf User-Agent ".*MSIE.*" \
                nokeepalive ssl-unclean-shutdown \
                downgrade-1.0 force-response-1.0
</VirtualHost>

Die Authentifizierung mache ich nun nicht mehr via Apache, sondern ueber PHP
und mySQL. Aus welchem Grund auch immer, spielt die Apache-Authentifizierung
mit SetEnvIfNoCase nicht zusammen, sodass die Bilder direkt angewaehlt
werden koennen obwohl kein Referer mitgeschickt wird.

Zu guter Letzt wird im Verzeichnis /secure/images noch eine .htaccess mit
folgenden Inhalt erstellt:

SetEnvIfNoCase Referer intranet intra_site_referal=1
<FilesMatch ".(gif|jpg|jpeg|png)">
    Order allow,deny
    allow from env=intra_site_referal
</FilesMatch>


Danke trotzdem fuer eure Hilfe und eine schoene Woche aus Wien,

Peter



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


AW: SetEnvIfNoCase - .htaccess Problem

Posted by Igor <Bo...@gmx.de>.
Hallo Peter!

Schau mal unter
http://www.opensa.org/manual/apache_guide/mod/core.html

So wie ich das verstehe müsstest du das mit "any"  in Verbinduing mit
"Require" und "Allow" setzen können.
Hoffe es hat dich vielleicht ein bischen weiter gebracht.

Gruss Igor


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------