Re: Komplettabfrage der DB per URL über * verhindern - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Jurenda (305 Beiträge) am Donnerstag, 24.Januar.2002, 23:36.
    Re: Komplettabfrage der DB per URL über * verhindern

      *ggrrrr* einige Zeichen verloren. So sollte es heißen:

      <perl>
      if ($_put{'Objekt-Nr~='} eq "") { # ObjektNr ist leer
      $_put{'Objekt-Nr~='} = 0;
      }
      elsif ($_put{'Objekt-Nr~='}=~/\D/) { # enthält ein nicht-Zahlzeichen
        $_put{'Objekt-Nr~='} = 0;
      }
      </perl>
      <do action=all db=... >
      

      Wichtig: Unbedingt den Namen der Datenbank fix angeben!


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Phixxi (280 Beiträge) am Donnerstag, 24.Januar.2002, 18:00.
    Komplettabfrage der DB per URL über * verhindern

      Hi Forum,
      folgendes: Die Steuerung meiner DB erfolgt über verschiedene externe Formulare auf meiner Website.
      Man kann sich die Datensätze entweder über Mehrfachauswahl anzeigen lassen (Region=NRW + Preis=xx Euro = Ergebnisliste) oder ein bestimmtes Objekt direkt über eine eindeutige Objektnummer anzeigen lassen (Objekt-Nr=1234). Die Parameter werden über die URL übergeben. Das Template wird durch do action=all gesteuert (Schema einfach also...).
      Wenn man nun beim Objekt-Nr Feld ein * eingibt, oder gar nix und auf Absenden klickt, erscheinen natürlich alle Einträge.
      Weiß jemand wie/ob ich das verhindern kann, so daß eine (korrekte) Eingabe also zwingend ist und sonst gar keine Einträge erscheinen?
      Evt. reicht es ja schon, wenn ich nur Ziffern als Eingabe zulasse...
      Aber gibt's da auch eine baseportalseitige Sicherung?
      THX
      Phixxi

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Donnerstag, 24.Januar.2002, 23:32.
    Re: Komplettabfrage der DB per URL über * verhindern

      Das ist aus der Abteilung: Wie geht das?

      Da gibts zwei Lösungsansätze.

      Ansatz 1:

      Die überprüfst die Eingabe bevor Dein Kunde die Daten an bp abschickt. Dazu brauchst Du lediglich entsprechendes Javascript in Deine HTML-Seiten mit den Formularen einbinden.

      Wenn Du dessen nicht mächtig bist, versuchs mal auf http://selfhtml.teamone.de oder auch bei einem alten Bekannten der wieder mal auf Kakao & Keks steht: http://javascript.seite.net/ ;-)

      Ansatz 2:

      Du überprüfst eingangsseitig bei Deinem Template die eintreffenden Daten. Dazu mußt Du aber Perl-Code schreiben. Schwierig zu lösen ist da aber die Frage: was mache ich, wenn da Schotter kommt, also bei * oder leeren Feldern? Nichts ausgeben oder Link zurück mit einem Hinweis, wie dumm Dein Kunde ist :-)

      z.B.:
      <perl>
      if ($_put{'Objekt-Nr'} eq "") { # ObjektNr ist leer
        $_put{'Objekt-Nr'} = 0;
      }
      elsif ($_put{'Objekt-Nr~='}=~/\D/) { # enthält ein nicht-Zahlzeichen
        $_put{'Objekt-Nr~='} = 0;
      }
      </perl>
      <do action=all db=... >
      

      Hierin wird sichergestellt, das in Deinem Objekt-Nr eine Zahl oder eben 0 steht. Dabei bin ich davon ausgegangen, daß Du das Such-Formular von <do action=all> nachprogrammiert hast. Wenn Du andere Parameter in Deinen Formularen produzierst, dann mußt Du es entsprechend adaptieren.

      Leider erahne ich aus Deiner Problembeschreibung zu wenig über die verschiedenen Fälle und wie Du sie an das Template überträgst. Das Ganze kann deshalb auch total schiefgehen. Probiers einfach aus.

      Gruß Jurenda

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Donnerstag, 24.Januar.2002, 23:36.
    Re: Komplettabfrage der DB per URL über * verhindern

      *ggrrrr* einige Zeichen verloren. So sollte es heißen:

      <perl>
      if ($_put{'Objekt-Nr~='} eq "") { # ObjektNr ist leer
      $_put{'Objekt-Nr~='} = 0;
      }
      elsif ($_put{'Objekt-Nr~='}=~/\D/) { # enthält ein nicht-Zahlzeichen
        $_put{'Objekt-Nr~='} = 0;
      }
      </perl>
      <do action=all db=... >
      

      Wichtig: Unbedingt den Namen der Datenbank fix angeben!

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Donnerstag, 24.Januar.2002, 23:48.
    Re: Komplettabfrage der DB per URL über * verhindern

      Jetzt schreit sicher gleich jemand, ich würde Selbstgespräche führen. Nein, nein, ich editiere Forumsbeiträge!

      Alsi, ich hab jetzt nachgeschaut und festgestellt, daß ich beim falschen Hash war. Tschuldigung. Das ganze müßte nach meiner Annahme so aussehen:

      <perl>
      if ($_sel{'Objekt-Nr'} eq "") { # ObjektNr ist leer
      $_sel{'Objekt-Nr'} = 0;
      }
      elsif ($_sel{'Objekt-Nr'}=~/\D/) { # enthält ein nicht-Zahlzeichen
      $_sel{'Objekt-Nr'} = 0;
      }
      </perl>
      <do action=all db=... >
      

      Wenn Du Deine Feldinhalte per Javascript direkt in den Url schreibst, dann mußt Du anstelle von $_sel{} zu $_get{} greifen.

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Freitag, 25.Januar.2002, 00:27.
    Re: Komplettabfrage der DB per URL über * verhindern

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Freitag, 25.Januar.2002, 11:00.
    Re: Komplettabfrage der DB per URL über * verhindern

      *freu über so viel Mühe*...
      Hi Jurenda,
      erstmal vielen Dank für die ganze Arbeit...
      Die letzte Variante (2 v. CB) scheint relativ einfach und auch sicher zu sein.
      Die teste ich mal.
      Danke nochmal!
      Phixxi

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Freitag, 25.Januar.2002, 12:18.
    Re: Komplettabfrage der DB per URL über * verhindern

      Was meinst Du mit sicher?

      lauf-stabil oder daten-sicher (=security)

      ;-)

     Antworten

    Beitrag von Phixxi (280 Beiträge) am Freitag, 25.Januar.2002, 12:30.
    Re: Komplettabfrage der DB per URL über * verhindern

      Ich meinte eigentlich Datensicher,
      aber das sollte ich wohl gerade vor Dir nicht sagen ;-)
      Abgesehen davon klappt das bei mir eh nicht so...
      Bin zu blöd!
      Kam direkt 'ne Fehlermeldung.
      Mit do action=all läuft das wohl nicht...
      Mal gucken ob ich HTML mäßig, bzw. JS mäßig eine korrekte Eingabe fordern kann.
      (Nur blöd wenn der User JS deaktiviert hat...)
      :-(

     Antworten


     
 Liste der Einträge von 51151 bis 51301:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.06s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!