URL-Anhang zum Übergabezeitpunkt fixieren
Teaser
- php
Hi,
muss ich das manuell machen oder gibt es eine Funktion oder ähnliches, was mir dabei helfen kann?
Hintergrund der Maßnahme ist, dass ich verhindern möchte, dass User in der Adresszeile die Parameter verändern können mir ein Umbau auf komplettes mod_rewrite zu viel Arbeit ist.
Deshalb möchte ich den kompletten Anhang beim Klick auf den Link in eine Session oder als db-Eintrag fixieren und im neuen Script dann vergleichen. Kennt die Session oder der db-Eintrag den Link nicht, gebe ich dann eine Fehlermeldung aus.
Teaser
Hi,
Hintergrund der Maßnahme ist, dass ich verhindern möchte, dass User in der Adresszeile die Parameter verändern können
Das kannst du nicht.
Deshalb möchte ich den kompletten Anhang beim Klick auf den Link in eine Session oder als db-Eintrag fixieren und im neuen Script dann vergleichen.
Wozu?
Was hoffst du damit zu erreichen?
MfG ChrisB
Hi,
Hintergrund der Maßnahme ist, dass ich verhindern möchte, dass User in der Adresszeile die Parameter verändern können
Das kannst du nicht.
Aber ich kann ihnen den Spaß daran nehmen ;-)
Deshalb möchte ich den kompletten Anhang beim Klick auf den Link in eine Session oder als db-Eintrag fixieren und im neuen Script dann vergleichen.
Wozu?
Was hoffst du damit zu erreichen?
s.o.
Und der 2. Grund ist, dass ich ohnehin jeden Klick logge. Leider gehen mir bei $_SERVER['QUERY_STRING'] immer wieder Parameter verloren. Keine Ahnung, warum dass so ist.
Deshalb nochmal die Frage: Kann ich beim Klick selber den Inhalt des Geklickten in eine Variable packen, bzw. gibt es eine solche Funktion bereits?
Grüße
Hi,
deine Antworten auf die Rückfragen bringen kaum mehr Licht ins Dunkel, wozu das ganze gut sein soll.
Und der 2. Grund ist, dass ich ohnehin jeden Klick logge. Leider gehen mir bei $_SERVER['QUERY_STRING'] immer wieder Parameter verloren. Keine Ahnung, warum dass so ist.
Wenn das dein eigentliches Problem ist, dann solltest du das vielleicht mal untersuchen.
Deshalb nochmal die Frage: Kann ich beim Klick selber den Inhalt des Geklickten in eine Variable packen, bzw. gibt es eine solche Funktion bereits?
Was bitte soll "der Inhalt des Geklickten" denn sein?
Bitte drücke dich mal präziser aus.
MfG ChrisB
Wenn das dein eigentliches Problem ist, dann solltest du das vielleicht mal untersuchen.
Dazu kommts zu selten vor.
Aber danke für Deine tips.
muss ich das manuell machen oder gibt es eine Funktion oder ähnliches, was mir dabei helfen kann?
Hintergrund der Maßnahme ist, dass ich verhindern möchte, dass User in der Adresszeile die Parameter verändern können mir ein Umbau auf komplettes mod_rewrite zu viel Arbeit ist.
Das Maximum des Machbaren ist, einen unvorhersehbaren Hash statt einen sichtbaren (und dadurch berechenbaren) Wert im QS zu verwenden.
Nebenwirkungen sind ein beträchtlicher Mehraufwand auf der Serverseite.
Das macht aber in der Regel keinen Sinn, ausser bei IDs irgendwelcher Art.
mfg Beat
Das Maximum des Machbaren ist, einen unvorhersehbaren Hash statt einen sichtbaren (und dadurch berechenbaren) Wert im QS zu verwenden.
Genau darum geht es mir.
Wäre eben schön, wenn es da etwas vorbereitetes gegeben hätte. Aber dann mach ich es innerhalb der Funktion.
Nebenwirkungen sind ein beträchtlicher Mehraufwand auf der Serverseite.
Beträchtlich=relativ.
Es geht um eine Seite mit ca. 1Mio. Klicks pro Jahr. Sollte also verschmerzbar sein. oder?
Grüße, Teaser
Genau darum geht es mir.
Wäre eben schön, wenn es da etwas vorbereitetes gegeben hätte. Aber dann mach ich es innerhalb der Funktion.
Php: sha1() zum Beispiel.
mfg Beat
Php: sha1() zum Beispiel.
Nein, meine Frage geht um etwas anderes. Nach der Übergabe (von Klick zu Script) steht der QS in $_SERVER['QUERY_STRING']. Da kommt er aber auch hinein, wenn der User manuell die Adresszeile ändert.
Das würde ich dem QS gerne anmerken. Ich will aber nicht die Einzelparameter durch Hashs ersetzen. Den kompletten QS gerne, aber nicht die Parameter selber. Dazu müsste aber z.B. sha1() rückrechenbar sein. Oder ich gebe dem QS nur eine Prüfziffer mit. Die müsste ich aber auch zuvor in eine db eintragen und abrufen können.
Wie bekomme ich also den Link in die db und zwar in einer Weise, die der User nicht imitieren kann?
Gruß, Teaser
Wie bekomme ich also den Link in die db und zwar in einer Weise, die der User nicht imitieren kann?
Gar nicht. Du kannst zwar versuchen, den Inhalt eines Formulars oder von Sonswas zu verschlüsseln und auf der Gegenseite entschlüsseln. Aber das hindert einen User nicht daran, deiner Verschlüsselung einen manipulierten Inhalt zu übergeben.
Konzentriere dich eher auf die Frage, was ein ungültiger Request auf deinem Server anrichten kann und behebe das Problem dort.
So langsam glaube ich, die Tatsachen beginnen dir deinen Spass zu verderben.
mfg Beat
Gar nicht. Du kannst zwar versuchen, den Inhalt eines Formulars oder von Sonswas zu verschlüsseln und auf der Gegenseite entschlüsseln. Aber das hindert einen User nicht daran, deiner Verschlüsselung einen manipulierten Inhalt zu übergeben.
Wie sollte er das tun?
Zudem, es geht viel weniger um das Verschlüsseln als viel mehr darum, Parameter nicht ganz so offensichtlich weiter zu geben. Ein Grund für viele, mod_rewrite einzusetzen.
Konzentriere dich eher auf die Frage, was ein ungültiger Request auf deinem Server anrichten kann und behebe das Problem dort.
Alles schon lang und längst gemacht. Da brennt auch nichts an.
So langsam glaube ich, die Tatsachen beginnen dir deinen Spass zu verderben.
Ist doch noch alles längst nicht ausgereizt. Ich bräuchte doch nur, ob clear oder nicht, den Link über eine funktion aufzurufen, in die db eintragen und auf "Gegenseite" das Vorhandenseins des Linkeintrags gegenzuprüfen. Jeder über die Adresszeile eingefügte Link läuft doch spätestens hier gegen die Wand. Oder habe ich etwas übersehen?
Grüße, Teaser
Ist doch noch alles längst nicht ausgereizt. Ich bräuchte doch nur, ob clear oder nicht, den Link über eine funktion aufzurufen, in die db eintragen und auf "Gegenseite" das Vorhandenseins des Linkeintrags gegenzuprüfen. Jeder über die Adresszeile eingefügte Link läuft doch spätestens hier gegen die Wand. Oder habe ich etwas übersehen?
Wenn du auf dem Server alles richtig gemacht hast, kann es dir scheissegal sein, ob irgendetwas mit deiner GUI anders umgeht, oder sie gar gänzlich umgeht.
Klär mich auf, warum du überhaupt am falschen Ort investieren willst.
mfg Beat
Klär mich auf, warum du überhaupt am falschen Ort investieren willst.
Ich lerne und habe gerade nichts besseres zu tun? ;-)
Aber ich fahre auch ab und zu Landstrasse, obwohl über BAB schneller wäre... ;-)
Zurück zum Thema? Würde mich freuen :-)
Hi,
Klär mich auf, warum du überhaupt am falschen Ort investieren willst.
Ich lerne und habe gerade nichts besseres zu tun? ;-)
Gut, dann lerne bitte:
Lass' es, es hat keinerlei praktischen Nutzen.
MfG ChrisB
Gut, dann lerne bitte:
1. Keine Arroganz!
Lass' es, es hat keinerlei praktischen Nutzen.
2. Lötzinn! Keiner ist unfehlbar. Insofern ist eine URL, die keine Parameterdetails preisgibt im Sinne der Sicherheit immer ein Vorteil!
MfG ChrisB
auch so.
Hi,
Gut, dann lerne bitte:
- Keine Arroganz!
Ja, genau darum wollte ich dich mit der Aufforderung bitten.
Lass' es, es hat keinerlei praktischen Nutzen.
- Lötzinn! Keiner ist unfehlbar. Insofern ist eine URL, die keine Parameterdetails preisgibt im Sinne der Sicherheit immer ein Vorteil!
Nein.
Dass security by obscurity nicht funktioniert, weiss jeder, der sich auch nur minimal mit der Thematik befasst.
MfG ChrisB
Dass security by obscurity nicht funktioniert, weiss jeder, der sich auch nur minimal mit der Thematik befasst.
Das "Worte im Mund verdrehen" als polemisches Mittel in Diskussionen nicht funktioniert, die auch wenigstens einen minimalen Nährwert haben sollen, weiß jeder, der auch nur minimalst fair mit anderen Menschen umgehen will.
Wenn Du also als Grundlage des Gespräches nicht das nimmst, was ich schreibe, sondern das, was Dir beliebt, spreche ich auch nur eben Dieses oder noch besser... gar nicht. ;-)
In diesem Sinne, schönen Abend noch.
@Beat: Danke für sha1(). Konnte ich gut für meine Lösung nutzen.
Teaser
Hi,
Wenn Du also als Grundlage des Gespräches nicht das nimmst, was ich schreibe, sondern das, was Dir beliebt,
Ich nahm das, was du schriebst - du hast behauptet, die Sicherheit würde durch diese unsinnige Maßnahme steigen.
Dem ist nicht so.
spreche ich auch nur eben Dieses oder noch besser... gar nicht. ;-)
Letzteres ist wohl das beste, wenn du an einer Diskussion nicht interessiert bist, sondern lieber auf deinem Irrtum beharrst.
MfG ChrisB
Ich nahm das, was du schriebst - du hast behauptet, die Sicherheit würde durch diese unsinnige Maßnahme steigen.
Lerne lesen, lese viel und Du wirst künftig weniger Probleme haben, Gelesenes auch zu verstehen...