You are not logged in.

wcf.regNote.message

Zecky

Beginner

  • "Zecky" started this thread

Posts: 1

  • Send private message

1

Thursday, January 29th 2009, 6:48pm

Hilfe beim FILTER

Source code

1
//Seiten-Funktion:  $mengequery = mysql_query("SELECT id FROM ".$tabelle."");  $menge = mysql_num_rows($mengequery);  if(isset($_GET['action']) && $_GET['action'] == "massdel") $limit = 25;  $maxsites = ceil($menge/$limit);    if(isset($_GET['site']) && $_GET['site'] != "" && $_GET['site'] != 0)      {      $l1 = $_GET['site']*$limit;      $l1 = $l1-$limit;      $mysqllimit = " LIMIT ".$l1.",".$limit."";        if($_GET['site'] > 1){ $zl = $_GET['site']-1; }      if($_GET['site'] < $maxsites){ $vl = $_GET['site']+1; }      }  else      {      $mysqllimit = " LIMIT ".$limit."";        $zl = 0;      if($menge > $limit){ $vl = 2; }      }  $postquery = "SELECT * FROM ".$tabelle." ORDER BY time DESC".$mysqllimit."";      //Eintragen von neuen Posts  if(isset($_POST['send']) && $_POST['send'] == 1 && isset($_POST['post']) && !empty($_POST['post']) && isset($_POST['name']) && !empty($_POST['name']) && $_POST['name'] != "Name")      {      //Spamschutz      if(!empty($_POST))  		{          if(!isset($_SESSION['secCheck'])) $errorC = TRUE;            if($_SESSION['secCheck'] != md5($_POST['secCheck'])) $errorC = TRUE;          else $errorC = FALSE;  		}        //Überprüfung der Spammtime & IP & UID      $aktime = time()-$spamm;      $checkentry = mysql_query("SELECT * FROM ".$tabelle." WHERE uid='".mysql_real_escape_string($_POST['uid'])."' OR time>='".$aktime."' AND ip='".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."'");      $checkentry2 = mysql_num_rows($checkentry);        if($checkentry2 < 1 && !$errorC && $spam_schutz == 1 OR $checkentry2 < 1 && $spam_schutz == 0)          {          $sql_insert = "INSERT INTO ".$tabelle." (username,nachricht,time,ip,uid) VALUES ('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['post'])."', '".time()."', '".$_SERVER['REMOTE_ADDR']."', '".mysql_real_escape_string($_POST['uid'])."')";          $result = mysql_query($sql_insert, $db);          }      else              {          $spammtime = 1;          }      }  ?>  <!-- 01-Shoutbox powered by 01-Scripts.de | Script (c) by Michael Lorer | www.01-scripts.de | info@01-scripts.de -->  <script type="text/javascript">  function popup(id, action) {  window.open('<?PHP echo basename($filename); ?>?id='+id+'&action='+action+'','_blank','width=250,height=200,scrollbars=yes,resizable=yes,status=no,toolbar=no,left=200,top=150');  }    function smilie_sb(text)  {  eval("document.shoutbox.post.value += \""+text+"\"");  }    //JS-Funktion mit freundlicher Unterstützung von "Berni*" (http://www.bernis-board.de/)  function clearField(field)  {  if(field.value == field.defaultValue)      {      field.value = "";      }  }    //JS-Funktion mit freundlicher Unterstützung von "Berni*" (http://www.bernis-board.de/)  function checkField(field)  {  if(field.value == "")      {      field.value = field.defaultValue;      }  }  </script>    <!--Ausgabe der Beiträge-->  <?PHP  if(!isset($_GET['action']) && !isset($_POST['action'])){  ?>  <form name="shoutbox" action="<?PHP echo $_SERVER['PHP_SELF']; ?>" method="post">  <table border="0" width="<?PHP echo $width; ?>" align="<?PHP echo $align; ?>" style="<?PHP echo $css1; ?>">        <tr>          <td style="font-size:<?PHP echo $fontsize; ?>;<?PHP echo $css1; ?>" colspan="4">              <?PHP              //Ausgabe der Meldung, wenn die Spammtime noch nicht abgelaufen ist:              if(isset($spammtime))                  {                  echo "<b>Spamschutz: Bitte die Gleichung berechnen!<br />  				Es kann nur alle ".$spamm."s ein Beitrag erstellt werden!</b><br /><br />";                  }                $posts = mysql_query($postquery);              while($rowp = mysql_fetch_array($posts))                  {                  $datum = date("d.n - G:i",$rowp['time']);                    $string = $rowp['nachricht'];                  $string = wordwrap($string , $break , "<br />" , 1);                  $string = preg_replace('"( |^)(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)"i','\\1<a href="http://\2" target="_blank">\\2</a>', $string);                  if($smilies == 1) $string = shout01_smilies($string);                    $nbreak = wordwrap($rowp['username'] , $break , "-<br />" , 1);                    echo "<i>".$datum."</i> <b>".$nbreak.":</b><br />".$string."<br />";                  }              ?>          </td>      </tr>      <tr>          <td align="left" width="25%" style="font-size:<?PHP echo $fontsize; ?>;"><?PHP if($_GET['site'] > 1){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=1\"><b>&laquo; 1</b></a>"; }else{ echo "&nbsp;"; } ?></td>          <td align="center" width="25%" style="font-size:<?PHP echo $fontsize; ?>;">&nbsp;<?PHP if($zl > 0){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$zl."\"><b>&lt; ".$zl."</b></a>"; } ?></td>          <td align="center" width="25%" style="font-size:<?PHP echo $fontsize; ?>;"><?PHP if(isset($vl) && $vl <= $maxsites){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$vl."\"><b>".$vl." &gt;</b></a>"; } ?>&nbsp;</td>          <td align="right" width="25%" style="font-size:<?PHP echo $fontsize; ?>;"><?PHP if(isset($_GET['site']) && $_GET['site'] < $maxsites OR $vl == 2){ echo "<a href=\"".$_SERVER['PHP_SELF']."?site=".$maxsites."\"><b>".$maxsites." &raquo;</b></a>"; }else{ echo "&nbsp;"; } ?></td>      </tr>  	<!--ENDE: Ausgabe der Beiträge-->  <!--Ausgabe des Formulars-->      <tr>          <td style="<?PHP echo $css1; ?>" colspan="4">              <input type="text" name="name" value="<?PHP if(isset($_POST['name']) && !empty($_POST['name'])){ echo $_POST['name']; }else{ echo "Name"; } ?>" size="<?PHP echo $fieldlength; ?>" onFocus="clearField(this);" onBlur="checkField(this);" style="font-size:<?PHP echo $fontsize; ?>;" />          </td>      </tr>      <tr>          <td style="<?PHP echo $css1; ?>" colspan="4">              <input type="text" value="<?PHP if(isset($_POST['post']) && !empty($_POST['post'])){ echo $_POST['post']; }else{ echo "Nachricht"; } ?>" name="post" size="<?PHP echo $fieldlength; ?>" onFocus="clearField(this);" onBlur="checkField(this);" style="font-size:<?PHP echo $fontsize; ?>;" />          </td>      </tr>  <?PHP if($smilies == 1){ ?>      <tr>          <td style="<?PHP echo $css1; ?>" align="center" colspan="4">              <a href="javascript:smilie_sb(' :) ');"><img src="<?PHP echo $picpf; ?>/1.gif" alt="Smilie :)" border="0" /></a>              <a href="javascript:smilie_sb(' :D ');"><img src="<?PHP echo $picpf; ?>/2.gif" alt="Smilie :D" border="0" /></a>              <a href="javascript:smilie_sb(' 8) ');"><img src="<?PHP echo $picpf; ?>/3.gif" alt="Smilie 8)" border="0" /></a>              <a href="javascript:smilie_sb(' :eek: ');"><img src="<?PHP echo $picpf; ?>/4.gif" alt="Smilie :eek:" border="0" /></a>              <a href="javascript:smilie_sb(' :p ');"><img src="<?PHP echo $picpf; ?>/5.gif" alt="Smilie :p" border="0" /></a>              <a href="javascript:smilie_sb(' :( ');"><img src="<?PHP echo $picpf; ?>/6.gif" alt="Smilie :(" border="0" /></a>              <a href="javascript:smilie_sb(' :x ');"><img src="<?PHP echo $picpf; ?>/7.gif" alt="Smilie :x" border="0" /></a>              <a href="javascript:smilie_sb(' :oX: ');"><img src="<?PHP echo $picpf; ?>/8.gif" alt="Smilie :oX:" border="0" /></a>              <a href="javascript:smilie_sb(' :roll ');"><img src="<?PHP echo $picpf; ?>/9.gif" alt="Smilie :roll" border="0" /></a>              <a href="javascript:smilie_sb(' ;) ');"><img src="<?PHP echo $picpf; ?>/10.gif" alt="Smilie ;)" border="0" /></a>          </td>      </tr>  <?PHP } ?>    <?PHP  if($spam_schutz == 1)      {      //Spamschutz      mt_srand((double)microtime() * 1000000);      $oprand = mt_rand(1,1);        switch($oprand)          {          case 1:            $loesungmd5 = md5(nein);          break;          }      $_SESSION['secCheck'] = $loesungmd5;  //          $gl1 = mt_rand(1,9);   //          $op = " + ";   //          $gl2 = mt_rand(1,9);   //          $loesungmd5 = md5($gl1+$gl2);  ?>      <tr>          <td style="font-size:<?PHP echo $fontsize; ?>;<?PHP echo $css1; ?>" colspan="4" align="left">Bis du ein BOT? (sag "nein")              <input type="text" value="" name="secCheck" size="11" onFocus="clearField(this);" onBlur="checkField(this);" style="font-size:<?PHP echo $fontsize; ?>;" />          </td>      </tr>  <?PHP      }//Ende: Spamschutz  ?>      <tr>          <td align="center" style="<?PHP echo $css1; ?>" colspan="4">              <input type="submit" value="Abschicken" style="font-size:<?PHP echo $fontsize; ?>;" />              <input type="hidden" name="send" value="1" />              <?PHP              mt_srand((double)microtime() * 1000000);              $uidzufall = mt_rand(1,9999);              ?>              <input type="hidden" name="uid" value="<? echo md5($_SERVER['REMOTE_ADDR'].time().$uidzufall); ?>" />          </td>      </tr>    </table>  </form>  <!--Ausgabe des Formulars ENDE-->  <?PHP  }//Ende: Abfrage !$_GET['action']  ?>


Ich weiss nicht wie aber ich brauch ein Filter der Java scripts im Namen und Nachricht verhindert

Prometheus

Administrator

Posts: 3,278

  • Send private message

2

Sunday, March 1st 2009, 11:27am

Zuerst würde ich vorschlagen überarbeite mal den Quellcode damit nicht alles in einer Zeile steht. So lässt der sich nicht gut lesen.

Schau Dir auf jeden Fall mal die Begriffe addslashes und stripslashes auf www.php.net an und außerdem such mal in Google nach "Injections verhindern" ggf. mit dem Wort mysql noch dazu. Außerdem kannst Du mit preg_match über regex in den Variablen nach Vorkommen von JS suchen und das so ausfiltern.
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

wcf.user.socialbookmarks.titel