liebewinter: Wie kann meine Website schutz gegen Angreifen

Hallo , ich möchte euch fragen eure Meinung wie kann meine Website von angreifen schutz…

Beispiel ,gegen XSS angreift...ich möchte auch lerne wie ich eine URL in PHP Sicher machen…

Brauchen euch nicht viele schreiben , nur mit Links wo erzählt wie man das macht ,auch Links in Englisch Sprache sind willkommen... ☺️

Vielennn danke !

    1. Lieber beatovich,

      bei aller Liebe, aber die Links in Deinem Posting sind nicht dazu geeignet, die Frage des OP auch nur im entferntesten zu beantworten!

      Liebe Grüße,

      Felix Riesterer.

      1. hallo

        Lieber beatovich,

        ... aber die Links in Deinem Posting sind nicht dazu geeignet, die Frage des OP auch nur im entferntesten zu beantworten!

        Ich höre auf die Begründung und hol' schon mal das Popkorn raus.

        1. Lieber beatovich,

          Ich höre auf die Begründung und hol' schon mal das Popkorn raus.

          die von Dir verlinkte Seite enthält keine Anleitungen oder Artikel, wie @liebewinter ihren Code besser schreibt. Vom Standpunkt ihres Wissens aus ist die verlinkte Seite nur eine Auflistung von Projekten, die sich alle sichere Software auf die Fahnen geschrieben haben, aber kein einziger Erklärbär-Artikel gegen XSS whatsoever.

          Liebe Grüße,

          Felix Riesterer.

          1. hallo

            Lieber beatovich,

            Ich höre auf die Begründung und hol' schon mal das Popkorn raus.

            die von Dir verlinkte Seite

            website

            ... enthält keine Anleitungen oder Artikel,

            https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet

            Die Website ist so umfangreich, dass auch du die Suchfunktion verwenden könntest.

            wie @liebewinter ihren Code besser schreibt. Vom Standpunkt ihres Wissens aus ist die verlinkte Seite

            website

            nur eine Auflistung von Projekten, die sich alle sichere Software auf die Fahnen geschrieben haben, aber kein einziger Erklärbär-Artikel gegen XSS whatsoever.

            wzbw

          2. @beatovich und @Felix Riesterer , Bitte nicht streit .

            @beatovich , es Warh was Felix sagt , der Links die du mich gegeben hast sprechen allgemein , aber nichts etwas Konkret von was ich gefragt habe... .Ich bin sehr neue mit diesen sachen...

            ich möchte Erste lerne wie Beispiel mein URL Baut ,zum Beispiel , wenn meine Website ist http://htmlkurss.xyz/ und habe eine datei http://htmlkurss.xyz/windows.php , wie kann Sicher machen , Beispiel mit Parameterwerten , bauen , http://htmlkurss.xyz/**&ff23?**windows.php .

            Ich habe in internet nach gesucht um dieses sagen zu lerne , aber habe nichts gefunde...., deshalb habe Gestern hier gefragt... wenn ich dieser Sache gelerne habe , ich mochte prüft mit OWASP ZAP , wie Sicher meine Website ist…

            ich wünsche alle beide eine Schöne Wochenende !

            1. Nur zu fragen… ist Besser eine URL mit Parameterwerten oder ohne ?

              1. hallo

                Nur zu fragen… ist Besser eine URL mit Parameterwerten oder ohne ?

                Daten, die den Zustand des Servers ändern, gehören via post übertragen.

                1. so wie ich verstande habe , mit URL-Parameter oder ohne , die Sicherheit auf meine Website , Spiel keine rolle.....

                  1. hallo

                    so wie ich verstande habe , mit URL-Parameter oder ohne , die Sicherheit auf meine Website , Spiel keine rolle.....

                    Sei dir einfach im Klaren: Alle Daten, die Bestandteil einer URL sind,

                    • können als Link an andere gesendet werden.
                    • können als Bookmark gespeichert werden.
                    • werden von Servern in Logfiles gespeichert.
                    • werden von Bots indexiert.

                    Es war zum Beispiel früher üblich, im Falle von deaktivierten Cookies Session-Id's als Querystring der URL anzuhängen, was Session-Diebstahl ermöglicht.

  1. Liebe(r) liebewinter,

    wie kann meine Website von angreifen schutz…

    indem man weiß, was man tut. Das ist kein Scherz! Je besser Du weißt, was Du da tust, desto besser kannst Du Deinen PHP-Code so schreiben, dass Angriffe gegen Deine Seite erschwert werden.

    Deine Frage zu beantworten ist sehr schwer, da es sehr stark darauf ankommt, wie Du Deinen Code aufbaust. Grundsätzlich musst Du alles, was an Daten an den Webserver geht, also alles im HTTP-Request, als potenziell böse behandeln, als wollte alles eine Schwachstelle in Deinem PHP-Code ausnützen. Wenn Du dann noch mit einer Datenbank wie MySQL oder ähnlichen arbeitest, musst Du auch noch dafür Sorge tragen, dass Daten aus dem Request nicht einfach so in den SQL-Code gelangen können.

    Das Thema ist sehr komplex! Unterschätze es nicht!

    Liebe Grüße,

    Felix Riesterer.

    1. jetzt habe keine Datenbank , erste möchte meine Website vertig machen...ich habe eine Website als probe gemacht , ich möchte erste lernen mit ihre... ich habe auf ihn nur zwei PHP , sie sind diesen...

      Erste:

      <?php
      
      
      class ClassProveContakt3 
      {
      
            private $Name;
            private $Email;
            private $Message;
            private $PostOK = false;
            private $DateTime = false;
            private $items = false; 
      
       
          function __construct() 
          {
      
       
               $this -> DateTime = date('m/d/Y h:i:s a');  
               $this -> items = ['Name', 'Email', 'Message']; 
                
               $flag = true;
                foreach ( $this -> items as $key ) {  
      			           if ( empty ( $_POST[$key] ) )  {
      			             $flag = false;    
      			           } else {    
      			             $this -> $key = trim( filter_var( $_POST[$key], FILTER_SANITIZE_STRING ) );
      			            }    
      		   }	     
               $this -> PostOk = $flag; 
          }
      
       
          
      
        
          function ShowForm() 
          {
      ?>
             <form method="POST">
              <label for="name"><b>Name * </b></label>
              <input type="text" id="name" name="Name" >
              <label for="email"><b> E-mail * </b></label>
              <input type="email" id="email" name="Email" >
              <br><br>
              <label><b> Message * </b><br>
                 <textarea cols="45" rows="6" name="Message"></textarea>      
              </label>
              <br><br>
              <input  type="submit" name="post" value="POST COMMENT" id="comment">
            </form>
      <?php
          }
         
        
             
             
            function PostOkT() 
            {
      
           
                    
              
      
       
                     if ($this -> PostOK) 
                     {
                       return;
                       
                     }     
                         if (empty($this->Name) ||  empty($this->Email) || empty($this->Message))
                         {
                         
                             echo "<br>" . "<b>" . "<h3>*** Please enter all required fields ***</h3>" . "</b>";  
                     
                        
                         } 
                         else 
                         {
                         
                         	
                            
                             
                             $file = "test.txt"; 
                             
                             
                             
                             $datetime = date('m/d/Y h:i:s a', time());
                             $data = array("name" => $this->Name, "email" => $this->Email, "message" => $this->Message, "datetime" => $this -> DateTime);
                             
          	                 
          			           $data = json_encode($data);
          		                   file_put_contents($file, $data . "\n", FILE_APPEND|LOCK_EX);
                             
                             
                             $messages = file($file);
                            
          		              foreach ($messages as $value) {
          		                $data = json_decode($value, true);
          				                  
              
                                        
                                        echo "<br>"
      
                                            . "<b>From: </b>" . htmlspecialchars( $data["name"])
                                            . "<b> at: </b>" . htmlspecialchars( $data["datetime"])
                                            #. "<br><br>" . htmlspecialchars( $data["email"])                                     
                                            . "<br><br>" . htmlspecialchars( $data["message"])
                                            . "<br><hr>";
              
                             }
                     
                          }
      
                         
      
             
             }
      
      } 
      
      
      $me = new ClassProveContakt3();
      $me -> ShowForm();
      $me -> PostOkT();
      
      
      ?>
      

      Zweite:

      <?php
      class NavigationLinkList {     
      	private $current_page;
      	private $arLinks;
          
      	public function __construct( $arNewLinks = false ) {
      		$this -> arLinks = []; 
      		$this -> addLinks ( $arNewLinks  );
      		$this -> current_page = $_SERVER['REQUEST_URI'];
      	}
           
      	public function addLinks ( $arNewLinks ) {
      		$flagErrors = false;
      		if ( isset( $arNewLinks['URL'] ) && isset( $arNewLinks['TEXT'] ) ) {  #Auf diesen if ,baut der array ...   
      			array_push( $this -> arLinks, $arNewLinks );
      			return true;
      		}
      		if ( is_array ( $arNewLinks ) ) {
      			foreach ( $arNewLinks as $NewLink ) {
      				if ( isset( $NewLink['URL'] ) && isset( $NewLink['TEXT'] ) ) {
      					array_push( $this -> arLinks, $NewLink );
      				}               
      			}
      		} else {
      			$flagErrors = true;
      		}
      		return false == $flagErrors;
      	}
      
      
      	public function printNav() {
      		echo '
      		<form class="link_wechsel">
      			<ul>' .  PHP_EOL;
              
      		foreach ( $this -> arLinks as $link ) {
      			if ( $this -> current_page == $link['URL'] ) {
      				$aria = ' aria-current="page"';
      			} else {
      				$aria = '';
      			}
      			echo '				<li><a' . $aria . ' href=' . $link['URL'] .'>' . $link['TEXT'] . '</a></li>' . PHP_EOL;
      		}
              
      		echo '
      			</ul>
      		</form>' .  PHP_EOL;
      	}
      }
      
      
      
      
      $_SERVER['REQUEST_URI'];
      
      
      
      $navListe = new NavigationLinkList();
      $navListe -> addLinks( [ 'URL' => '/meine/windows.php', 'TEXT' => '1' ] );
      $navListe -> addLinks( [ 'URL' => '/meine/windows_2.php', 'TEXT' => '2' ] );
      $navListe -> printNav();
      
      

      man kann sage , das ich diesen Code von euch bekomme habe ☺️ ,was ist deine Meinung ??

  2. Hello,

    da muss man unterscheiden zwischen

    • Angreifbarkeit wegen Systemlücken
    • Angreifbarkeit wegen Programmierfehlern
    • Angreifbarkeit wegen fehlender Angriffskontrolle und -abwehr

    Die dritte Variante musst Du bereits in deiner Programmierung vorsehen, z. B. durch Logging.

    Wenn z. B. von einer IP 10x hintereinander ein fehlschlagender Anmeldeversuch erfolgt, kannst Du sie (durch Systemtools) sperren lassen. Das Gleiche für unerlaubte Uploads, usw.

    Programmierfehler sind meistens solche, die ein unkontrolliertes Schreiben (z. B. durch Uploads) auf deinem Server ermöglichen. Die musst Du vermeiden!

    Glück Auf
    Tom vom Berg

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
    1. Programmierfehler sind meistens solche, die ein unkontrolliertes Schreiben (z. B. durch Uploads) auf deinem Server ermöglichen. Die musst Du vermeiden!

      auf meine website(jetzt habe nur als probe..) man kann nichts Upload...

      1. Liebe(r) liebewinter,

        auf meine website(jetzt habe nur als probe..) man kann nichts Upload...

        aber man kann bei contact.php und windows8.php Daten zur Verarbeitung an den Server senden. Wie werden diese Daten verarbeitet? Hier kann ein Sicherheitsrisiko entstehen.

        Liebe Grüße,

        Felix Riesterer.

  3. Angreifer manipulieren Requestheader, täuschen z.B. einen ganz anderen Enctype vor als den sie senden. Das kann dazu führen, daß der Server solche Requests mit Informationen beantwortet die er im Regelbetrieb nicht herausgibt.

    Ds Weiteren können Pufferüberläufe den Server und nachgelagerte Prozesse zum Absturz bringen was auch gewisse Schäden verursacht.

    Sowas zu Prüfen und zu sichern ist ein weites Betätigungsfeld.

    MfG

    1. ...und wie kann ich das verhindert ??

      1. Liebe(r) liebewinter,

        ...und wie kann ich das verhindert ??

        Du kannst so etwas nicht verhindern. Du kannst nur Dein PHP-Script so schreiben, dass es in solchen Fällen trotzdem genau das tut, was es soll.

        Liebe Grüße,

        Felix Riesterer.

        1. und wie machen das ?....

      2. ...und wie kann ich das verhindert ??

        Indem Du Dir anschaust wie sich solche Angriffe auswirken. Die Angriffe kannst Du zwar nicht verhindern aber die Auswirkungen.