Ankündigung

Einklappen
Keine Ankündigung bisher.

Formulardaten Sicherheit

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Formulardaten Sicherheit

    Um mein Affenformular sicherer zu machen habe ich eine Controlstruktur eingefügt die mir bei einem Optionsfeld Probleme macht. Ich habe es erstmals auser kraft gesetzt und sie durch eine andere Abfrage ersetzt


    PHP-Code:
      $ok = false;
      $fehlerfelder = [];
      if (isset($_POST['Submit'])) {
        $ok = true;
        if (!isset($_POST['Anrede']) ||
          !is_string($_POST['Anrede'])) {
          $ok = false;
          $fehlerfelder[] = 'Anrede';
        }
        if (!isset($_POST['Vorname']) ||
          !is_string($_POST['Vorname']) || 
            trim($_POST['Vorname']) == '') {
          $ok = false;
          $fehlerfelder[] = 'Vorname';
        }
        if (!isset($_POST['Nachname']) ||
          !is_string($_POST['Nachname']) || 
            trim($_POST['Nachname']) == '') {
          $ok = false;
          $fehlerfelder[] = 'Nachname';
        }
        if (!isset($_POST['Email']) ||
          !is_string($_POST['Email']) || 
            trim($_POST['Email']) == '') {
          $ok = false;
          $fehlerfelder[] = 'E-Mail';
        }
        if (!isset($_POST['Strasse']) ||
          !is_string($_POST['Strasse']) || 
            trim($_POST['Strasse']) == '') {
          $ok = false;
          $fehlerfelder[] = 'Strasse';
        }
        if (!isset($_POST['Nummer']) ||
          !is_string($_POST['Nummer']) || 
            trim($_POST['Nummer']) == '') {
          $ok = false;
          $fehlerfelder[] = 'Nummer';
        }
        if (!isset($_POST['Ort']) ||
          !is_string($_POST['Ort']) || 
            trim($_POST['Ort']) == '') {
          $ok = false;
          $fehlerfelder[] = 'Ort';
        }
        if (!isset($_POST['PLZ']) ||
          !is_string($_POST['PLZ']) || 
            trim($_POST['PLZ']) == '') {
          $ok = false;
          $fehlerfelder[] = 'PLZ';
        }// diese Abfrage wird ordnungsgemäß durchgeführt und das echo wird angezeigt
        if (isset($_POST['Bundesland'])) {
        echo "Die Option Bundesland ist gesetzt.";
        } else {
        echo "Die Option ist nicht gesetzt.";
        }
    //ist dieser Abfrage aktiviert und die obere deaktiviert meckert das Programm Bundesland nicht gesetzt
       //if (!isset($_POST['Bundesland']) ||
        //  !is_array($_POST['Bundesland'])) {
        //  $ok = false;
        //}
        if (!isset($_POST['Kommentare']) ||
          !is_string($_POST['Kommentare']) || 
            trim($_POST['Kommentare']) == '') {
          $ok = false;
          $fehlerfelder[] = 'Kommentare';
        }
        if (!isset($_POST['Unterstuetzer']) ||
          !is_string($_POST['Unterstuetzer'])) {
          $ok = false;
          $fehlerfelder[] = 'Unterstuetzer';
        }
        if ($ok) {
    ?>
    <h1>Formulardaten</h1>
    <?php 
    $test 
    ='"';
      
    $Anrede = (isset($_POST['Anrede']) && is_string($_POST['Anrede'])) ? 
    $_POST['Anrede'] : '';
      
    $Vorname = (isset($_POST['Vorname']) && is_string($_POST['Vorname'])) ? 
    $_POST['Vorname'] : '';
      
    $Nachname = (isset($_POST['Nachname']) && is_string($_POST['Nachname'])) ? 
    $_POST['Nachname'] : '';
      
    $Email = (isset($_POST['Email']) && is_string($_POST['Email'])) ? 
    $_POST['Email'] : '';
      
    $Strasse = (isset($_POST['Strasse']) && is_string($_POST['Strasse'])) ? 
    $_POST['Strasse'] : '';
      
    $Nummer = (isset($_POST['Nummer']) && is_string($_POST['Nummer'])) ? 
    $_POST['Nummer'] : '';
      
    $Ort = (isset($_POST['Ort']) && is_string($_POST['Ort'])) ? 
    $_POST['Ort'] : '';
      
    $PLZ = (isset($_POST['PLZ']) && is_string($_POST['PLZ'])) ? 
    $_POST['PLZ'] : '';
      
    $Bundesland = (isset($_POST['Bundesland']) && is_string($_POST['Bundesland'])) ? 
    $_POST['Bundesland'] : '';
      
    $Kommentare = (isset($_POST['Kommentare']) && is_string($_POST['Kommentare'])) ? 
    $_POST['Kommentare'] : '';
      
    $Unterstuetzer  = (isset($_POST['Unterstuetzer']) && is_string($_POST['Unterstuetzer'])) ? 
    $_POST['Unterstuetzer'] : '';
       
    $Anrede htmlspecialchars($Anrede);
      
    $Vorname htmlspecialchars($Vorname);
      
    $Nachname htmlspecialchars($Nachname);
      
    $Email htmlspecialchars($Email);
      
    $Strasse htmlspecialchars($Strasse);
      
    $Nummer htmlspecialchars($Nummer);
      
    $Ort htmlspecialchars($Ort);
      
    $PLZ htmlspecialchars($PLZ);
      
    $Bundesland htmlspecialchars($Bundesland);
      
    $Kommentare nl2br(htmlspecialchars($Kommentare));
      
    $Unterstuetzer htmlspecialchars($Unterstuetzer);
      echo 
    "<b>Anrede:</b> $Anrede<br />";
      echo 
    "<b>Vorname:</b> $Vorname<br />";
      echo 
    "<b>Nachname:</b> $Nachname<br />";
      echo 
    "<b>E-Mail:</b> $Email<br />";
      echo 
    "<b>Strasse</b> $Strasse<br />";
      echo 
    "<b>Ort:</b> $Ort<br />";
      echo 
    "<b>PLZ:</b> $PLZ<br />";
      echo 
    "<b>Nummer:</b> $Nummer<br />";
      echo 
    "<b>Bundesland</b> $Bundesland<br />";
      echo 
    "<b>Kommentare:</b> $Kommentare<br />";
      echo 
    "<b>Unterstuetzer</b> $Unterstuetzer<br />";

  • #2
    Zitat von OldboyJRob Beitrag anzeigen
    Um mein Affenformular sicherer zu machen habe ich eine Controlstruktur eingefügt die mir bei einem Optionsfeld Probleme macht.
    Welches Problem möchtest du genau lösen bzw. was willst du da "sicherer machen"? Und was verstehst du unter einem "Optionsfeld" bzw. wie sieht dein Formular aus?

    if (!isset($_POST['Vorname']) ||
    !is_string($_POST['Vorname']) ||
    trim($_POST['Vorname']) == '') {
    $ok = false;
    $fehlerfelder[] = 'Vorname';
    }
    Da dürfte als Bedingung ein einfaches empty() reichen: isset wird damit ebenfalls erschlagen, die Besonderheiten von empty sollten kein Problem sein und is_string($_POST['…']) gibt immer true da in $_POST (und $_GET) immer Strings stehen. Was an dem ganze jetzt die Sicherheit erhöhen soll erschließt sich mir aber nicht.

    //ist dieser Abfrage aktiviert und die obere deaktiviert meckert das Programm Bundesland nicht gesetzt
    //if (!isset($_POST['Bundesland']) ||
    // !is_array($_POST['Bundesland'])) {
    // $ok = false;
    //}
    Ist das Formularelement für das Bundesland ein select-Element? Da wird immer ein Wert übertragen, das Feld ist also immer vorhanden.

    $Anrede = (isset($_POST['Anrede']) && is_string($_POST['Anrede'])) ?
    $_POST['Anrede'] : '';
    das geht auch einfacher:
    PHP-Code:
    $Anrede $_POST['Anrede'] ?? ''
    (is_string() ist auch hier überflüssig da immer true)

    Kommentar

    Lädt...
    X