tag:forum.selfhtml.org,2005:/self aktuelle url auslesen – SELFHTML-Forum 2007-12-02T07:37:58Z https://forum.selfhtml.org/self/2007/dec/1/aktuelle-url-auslesen/1186698#m1186698 dobra office@woll-insel.at 2007-12-01T05:36:19Z 2007-12-01T05:36:19Z aktuelle url auslesen <p>Hallo,</p> <p>Habe ein kleines Problem mit versehentlich (unwissentlich) weitergegebenen Session-IDs.</p> <p>Bei meiner Shop-Software wird die Session-ID mit der url übergeben.<br> Das Problem: wenn ein eingeloggter Kunde einen Link mit seiner Session ID weitergibt (z.B. in einem Forum postet) und ein anderer klickt innerhalb der Timeoutzeit auf diesen Link, ist er als Kunde 1 eingeloggt und kann seine Daten einsehen und auch ändern.</p> <p>Die Seiten werden normalerweise mit url?showSeitennummer,Session-ID aufgerufen.<br> (schaut in der HTML Vorlage z.B. so aus __xxpath__?show1200004810,__xxsession__ )<br> Mit url?logoffshowSeitennummer,Session-ID erreicht man die selbe Seite, ist aber AUSGELOGGT!</p> <p>Meine Idee ist eine Abfrage, ob die Seite von meiner Adresse aus aufgerufen wurde:</p> <p><!--spmacro:module(session)<br> sub test {<br>   my $out;<br>               if ((! defined $ENV{HTTP_REFERER}) or ($ENV{HTTP_REFERER} !~ /.meine Adresse)) {<br>                    my $out = qq | <META HTTP-EQUIV="REFRESH" CONTENT="0; URL=http://Adresse mit logoffshow statt show"> |;<br>               }<br>      main::mprint print $out;<br>  }<br>  --></p> <p>Gibt es eine Möglichkeit mit Perl in der URL das "show" geben "logoffshow" auszutauschen?</p> <p>Ich weiß schon, daß die $ENV{HTTP_REFERER} Abfrage nicht 100% sicher funktioniert, würde das Risiko das Kundendaten versehentlich einsehbar gemacht werden aber doch sicher sehr minimieren.</p> <p>P.S.: mein Shop Support hat mit versprochen, daß sie sich diese Problematik bei der nächsten Version nochmal genauer ansehen werden.<br> So lange möchte ich aber nicht warten...</p> <p>Kann mir jemand helfen?</p> <p>Vielen Dank im Voraus<br> dobra</p> https://forum.selfhtml.org/self/2007/dec/1/aktuelle-url-auslesen/1186701#m1186701 Alexander (HH) 2007-12-01T10:27:12Z 2007-12-01T10:27:12Z aktuelle url auslesen <p>Moin Moin!</p> <p>Du versuchst, dich auf den REFERER-Header zu verlassen, der notorisch unzuverlässig ist.</p> <p>Speichere die Session-ID nicht in der URL, sondern in einem Cookie. So erhälst Du weitergebbare URLs, ohne Sessions versehentlich zu teilen.</p> <p>Speichere in der Session die IP-Adresse der Gegenseite und ggf. die Browser-Kennung (REMOTE_ADDR und USER_AGENT), wenn die nicht übereinstimmen, verwerfe die Session. -- Kleiner Haken: Einige Provider routen Requests über verschiedene Proxies, so dass sich die REMOTE_ADDR von Request zu Request ändert. Lästig, aber nicht vermeidbar. Der HEader X_FORWARDED_FOR könnte in dem Fall helfen.</p> <p>Alexander</p> <div class="signature">-- <br> Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". </div> https://forum.selfhtml.org/self/2007/dec/1/aktuelle-url-auslesen/1186699#m1186699 Patrick Andrieu http://www.atomic-eggs.com/cwi/cwi_4.shtml 2007-12-01T10:38:01Z 2007-12-01T10:38:01Z aktuelle url auslesen <p>Hallo dobra!</p> <blockquote> <p><!--spmacro:module(session)<br> sub test {<br>   my $out;<br>               if ((! defined $ENV{HTTP_REFERER}) or ($ENV{HTTP_REFERER} !~ /.meine Adresse)) {<br>                    my $out = qq | ... |</p> </blockquote> <p>^^</p> <p>»my« gehört hier nicht hin, die Deklaration hast Du schon weiter oben gemacht.<br> »|« als Delimiter für qq, qw, etc... würde ich vermeiden, da es für Pipes bei Programmaufrufen gebraucht wird, z.Beispiel open (MAIL, "|$MailProg ...") oder als »oder« in Regulären Ausdrucken $str =~ s/(foo|bar)/buz/g;</p> <blockquote> <p>Gibt es eine Möglichkeit mit Perl in der URL das "show" geben "logoffshow" auszutauschen?</p> </blockquote> <p>Reguläre Ausdrucke war eben das Stichwort:</p> <p>my $out = "url?show...........";<br> $out =~ s/show/logoffshow/;</p> <p>Viele Grüße aus Frankfurt/Main,<br> Patrick</p> <div class="signature">-- <br> <img src="http://www.atomic-eggs.com/fuernA.jpg" alt="" loading="lazy"><br> _ - jenseits vom delirium - _<br> [<a href="http://www.atomic-eggs.com/" rel="nofollow noopener noreferrer">link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash</a>]<br> Nichts ist unmöglich? <a href="http://www.atomic-eggs.com/cwi/cwi_4.shtml" rel="nofollow noopener noreferrer">Doch!</a><br> Heute schon ge<a href="http://goek.atomic-eggs.com/goek_goek.html" rel="nofollow noopener noreferrer">gök</a>t? </div> https://forum.selfhtml.org/self/2007/dec/1/aktuelle-url-auslesen/1186700#m1186700 dobra office@woll-insel.at 2007-12-02T07:37:58Z 2007-12-02T07:37:58Z aktuelle url auslesen <blockquote> <p>Reguläre Ausdrucke war eben das Stichwort:</p> <p>my $out = "url?show...........";<br> $out =~ s/show/logoffshow/;</p> </blockquote> <p>Danke !<br> das funktioniert mal als "erste Notlösung" bis etwas besseres von der Shop-Software kommt</p> <p>mfG aus Wien<br> dobra</p> https://forum.selfhtml.org/self/2007/dec/1/aktuelle-url-auslesen/1186702#m1186702 dobra office@woll-insel.at 2007-12-02T07:31:10Z 2007-12-02T07:31:10Z aktuelle url auslesen <blockquote> <p>Speichere die Session-ID nicht in der URL, sondern in einem Cookie.</p> </blockquote> <p>Das kann ich leider nicht machen - in die Shop-Software kann ich nicht direkt eingreifen - nur mit Subroutinen eingreifen...</p> <blockquote> <p>Speichere in der Session die IP-Adresse der Gegenseite und ggf. die Browser-Kennung (REMOTE_ADDR und USER_AGENT), wenn die nicht übereinstimmen, verwerfe die Session. -- Kleiner Haken: Einige Provider routen Requests über verschiedene Proxies, so dass sich die REMOTE_ADDR von Request zu Request ändert. Lästig, aber nicht vermeidbar. Der HEader X_FORWARDED_FOR könnte in dem Fall helfen.</p> </blockquote> <p>Diesen Lösungsansatz habe ich wieder verworfen, da AOL-Kunden dann nicht mehr bestellen können.</p>