Sicherheit: httpd.conf mod_rewrite GET Parameter

Beitrag lesen

Hallo hotti,

http://example.com?domainendung=käse

Mit:
RewriteRule ^(/index.php)??(.*)$ www.example-forbidden.com/403 [R=403,L]

oder würde das den nachfolgenden Request behindern?

RewriteRule ^/$ /index.php?domainendung=%1&seite=startseite [QSA]

Theoretisch ja nicht, da ich kein Redirect habe und das nicht in der Adresszeile steht, da ich den Host Abfrage, nicht den Hintergrund:

RewriteCond %{HTTP_HOST} ^example.(com|eu) [NC]

Könnte ich das hier zumindest verhindern. Ich muss mal gleich testen wie es mit sowas aussieht:

requestet. Hinweis: QSA sorgt dafür, dass Parameter angehängt werden. In diesem Fall wird ein gleichnamiger Parameter angehängt.

RewriteRule ^/([-\w]+)$ /index.php?domainendung=%1&seite=$1 [QSA]

www.example.com/seite1/?seite=seite2

Dann ist theoretisch $_GET['seite'] = seite1 und wird aber durch den query überschrieben in $_GET['seite'] = seite2, stimmts?

Mein Lösungsansatz wäre hier folgender, indem ich genau diese Variablen ausschließe:

RewriteRule (?domainendung|?seite) www.example-forbidden.com/403 [R=403,L]
RewriteRule ^/([-\w]+)$ /index.php?domainendung=%1&seite=$1 [QSA]

Dann stellt sich jetzt, wenn das sicher sein sollte, mir nurnoch die Frage, ob bei der Übertragung in welchem Sinne auch immer, die korrekten $_GET Parameter z.B.

$_GET['seite'] = seite1

zum PHP Skript hin nochmals manipuliert werden können, oder kann ich sicher sein, dass wenn durch das mod_rewrite geprüfte und gesendete Wert "seite1" im PHP Skript auch als "seite1" ankommt, nachdem der Wert "seite1" gesendet wurde?

Vielen Dank für obigen Hinweis!