Toon posts:

http error 403 bij url met dubbele punt

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
M'n webserver geeft een http error 403 "forbidden" bij bepaalde acties in m'n cms (Concrete 5).

De foutmelding verschijnt wanneer ik een thema wil activeren of een gebruiker wil verwijderen.
Een mogelijke url waar ik dan op uit kom is:
http://www.domein.com/index.php/dashboard/users/search/delete/2/1311082665:b9ed36685477423ba941499ddfbf087d/

..en deze geeft continue een http error 403.

Na dagen haren uittrekken heb ik de volgende observaties mogen doen:
  • chmod 777 op dirs en 666 op files maakt geen verschil, ook de owner en group staan op de apache standaard www-data:www-data
  • de toegangsregels staan op "allow from all" en er is geen restrictie op user of ip basis aanwezig
  • url rewriting staat uit
  • de site werkt grotendeels prima; ik kan pagina's toevoegen, bijwerken, gebruikers toevoegen, etc..
  • een schone herinstallatie van het cms maakt geen verschil
  • met index.php verwijderd krijg ik altijd een http error 404. dat is goed.
Maar het meest opmerkelijke vind ik dit:
  • een lege index.php geeft mij een http error 404 bij urls als
    domein.com/index.php/dashboard
    , maar..
  • ..dezelfde lege index.php geeft een error 403 bij urls als
    domein.com/index.php/delete/2342152356:45ghgjk234ut3k45jh
  • ..en dat gebeurt ook als ik %3A gebruik in plaats van de : (dubbele punt)
  • een url als
    ../index.php?foo:bar
    werkt wel normaal, behalve dat het cms die niet gebruikt en ik daar dus weinig mee kan
De dubbele punt lijkt dus de oorzaak te zijn, maar enkel als je na index.php verder gaat met een pad, in plaats van argumenten.

Vermoedelijk zit dit probleem ergens in m'n Apache 2 of php 5.3 config, maar ik zou niet weten waar..

Acties:
  • 0 Henk 'm!

  • marko77
  • Registratie: Februari 2002
  • Laatst online: 06-05 19:41
Wat zeggen je logs?

Mijn rig


Acties:
  • 0 Henk 'm!

  • alex3305
  • Registratie: Januari 2004
  • Laatst online: 22:18
Is dit een verse install of heb je het gemigreerd?

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Geen htaccess oid ingesteld staan?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
access.log:
code:
1
www.domein.com:80 xxx.xxx.xxx.xxx - - [21/Jul/2011:22:05:44 +0200] "GET /index.php/dashboard/pages/themes/activate_confirm/2/1310968900:3dd6118bb4e457f9aece9e69a158c513/ HTTP/1.1" 403 503 "http://www.domein.com/index.php/dashboard/pages/themes/activate/2/" "Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0"


Weinig nuttigs dus..

Het is een verse installatie. Ik heb een nieuwe database aangemaakt en het cms opnieuw gedownload en geinstalleerd. De rechten heb ik aangepast waar nodig volgens de documentatie, al maakt dat weinig uit, zoals eerder vermeld.

In de config van de virtual host heb ik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<VirtualHost *:80>
        ServerAdmin nio@domein.com
        ServerName www.domein.com
        ServerAlias domein.com *.domein.com

        DocumentRoot /var/www/domein.com
        <Directory /var/www/domein.com>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride all
                Order allow,deny
                allow from all
                <IfModule mod_rewrite.c>
                RewriteEngine Off
                RewriteBase /
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteRule ^(.*)$ index.php/$1 [L]
                </IfModule>

                ####### PHP DEBUGGING RULES #######
                # supress display of php errors, Below three lines will disable the PHP error reporting to user
                php_flag display_startup_errors off
                php_flag display_errors off
                php_flag html_errors off
                 
                # enable verbose PHP error logging to a file,
                # Below three lines will log the all PHP error,
                #  warning and notices in log files at the path specified.
                php_flag  log_errors on
                php_value error_reporting 2047
                php_value error_log  /var/log/apache2/domein.com.php_error.log
                ####### END PHP DEBUGGING RULES #######
        </Directory>
        LogLevel debug
</VirtualHost>


.htaccess bestanden zijn niet aanwezig, daar ik dat in een apart config bestand voor de virtual host plaats.
De php logging lijkt echter niet te werken. Ookal pas ik de nodige instellingen in php.ini aan, dan nog zie ik geen log bestand verschijnen. Voor een ander virtueel domein echter zie ik wel php notices in de apache logs verschijnen, dus misschien houdt het cms de logging tegen?
Het cms heeft een debug optie, waarbij het meer info zou moeten geven over problemen, maar daar heb ik nog niets van gemerkt.

Ik heb de php.ini ook hersteld naar de originele config, maar dat maakt geen verschil.

Acties:
  • 0 Henk 'm!

  • lordgandalf
  • Registratie: Februari 2002
  • Laatst online: 02-10 16:23
je krijgt vermoedelijk een error omdat je url rewriting uitstaat.
en dan snapt apache je stukje n index.php niet

Steam: Profile / Socialclub: Profile / Uplay: minedwarf / Origin: lordgandalf3


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat zou je denken, maar
http://www.domein.com/index.php/dashboard
bijvoorbeeld, werkt wel.
Enig zoeken leert mij dat dit de PathInfo techniek is.

Overigens kan je in het cms zelf ook instellen of rewriting aan staat of niet. Zo ja, dan krijg je urls als
http://www.domein.com/dashboard

[ Voor 61% gewijzigd door Verwijderd op 22-07-2011 13:55 . Reden: PathInfo info..) ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb op m'n standaard host (zelfde server, default virtual host) een simpel php scriptje gemaakt:
code:
1
<?php echo('path_info is "' . $_SERVER['PATH_INFO'] . '"'); ?>


En dit zijn de resultaten met enkele url tests:
  • domein.com/pathinfo.php?foo=bar
    geeft enkel
    path_info is ""
    Dat is goed.
  • domein.com/pathinfo.php/foo/bar
    geeft
    path_info is "/foo/bar"
    Dat is ook goed.
  • domein.com/pathinfo.php/foo:bar
    geeft
    Forbidden
    You don't have permission to access /pathinfo.php/foo:bar on this server.
    Dat is niet goed.
De urls met PathInfo en een dubbele punt moeten wel mogelijk zijn, zoals je kan zien aan Wikipedia: Wikipedia:About

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Probleem opgelost!
Nadat ik een /etc/apache2 dir heb laten vullen met standaard config bestanden en deze probeerde, was het probleem verdwenen.
Vervolgens heb ik de dir vergeleken met m'n eigen config, en na lang pielen blijkt dat m'n eigen blocklist de oorzaak was.. D'oh! |:(

De boosdoener was kort samengevat dit:
code:
1
2
3
4
5
6
7
<Directory /var/www>
  Order Allow,Deny
  allow from all
  <IfModule mod_alias.c>
    RedirectMatch 403 \:
  </IfModule>
</Directory>


Ik ga nu maar eens kijken of ik die blocklist kan voorzien van een wat duidelijkere logging..
Pagina: 1