Ip logging von Wbb komplett abschalten?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von D!d0w3, 9. März 2006 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 9. März 2006
    Hallo,
    Ich habe ien frage ich möchte das ip.logging von WBB 2.3.x komplett abscahlten ... weiß nur nit wie... kann mir dabie helfen?

    *Greez D!d0w3

    Ps. Sry @ mods wenn es da sfalsche Forum ist war mir nit sicher^^
     
  2. 9. März 2006
    Schau mal hier:
    #################################################################################
    # #
    # Hack/Addon : IP Log komplett aus WBB entfernen #
    # Version : 1.0.2 #
    # Autor : Jack #
    # Beschreibung: Der Hack entfernt jegliche Logs aus dem Forum. #
    # Voraussetzung: WBBoard 2.3.x #
    # WICHTIG! Vor dem Einbau des Hacks unbedingt eine Datensicherung #
    # der zu ändernden Dateien machen!!! #
    # #
    #################################################################################

    ###############
    ## Vorwort ##
    ###############

    Ich wurde gebeten das WBB so zu coden, dass es keine gültigen IPs mehr loggt. Dies kann für große Selbsthilfe Foren, wessen Benutzer anonym bleiben wollen nützlich sein.
    Ich weiße darauf hin, das es rechtlich gesehen nicht sinnvoll ist diesen Hack einzubauen, da ohne Ihn besser gegen Störenfriede angegangen werden kann!

    ##################
    ## Danksagung ##
    ##################

    Ein Dank geht an den Woltlab Mitarbeiter frederics, welcher mir bei der Suche nach den Logs geholfen hat. Ich denke er hat eine Erwähnung verdient.


    ############
    #global.php#
    ############

    Suche:

    $phpversion = phpversion();

    Füge darunter ein:


    $ipaddr = "127.0.0.1";

    Suche:

    $join .= " LEFT JOIN bb".$n."_votes v ON (v.id=t.threadid AND v.votemode=2 AND ".(($wbbuserdata['userid']) ? ("v.userid='".$wbbuserdata['userid']."'") : ("v.ipaddress='".addslashes($REMOTE_ADDR)."'")).")";

    ersetze:

    $join .= " LEFT JOIN bb".$n."_votes v ON (v.id=t.threadid AND v.votemode=2 AND ".(($wbbuserdata['userid']) ? ("v.userid='".$wbbuserdata['userid']."'") : ("v.ipaddress='".addslashes($ipaddr)."'")).")";

    ###############
    #newthread.php#
    ###############

    Suche:

    $db->query("INSERT INTO bb".$n."_posts (threadid,userid,username,iconid,posttopic,posttime,message,attachments,allowsmilies,allowhtml,allowbbcode,allowimages,showsignature,ipaddress,visible) VALUES ".
    "('$threadid','$wbbuserdata[userid]','".addslashes($wbbuserdata['username'])."','$iconid','".addslashes($topic)."','$time','".addslashes($message)."','".count($attachmentids)."','$allowsmilies','$allowhtml','$allowbbcode','$allowimages','".intval($_POST['showsignature'])."','".addslashes($REMOTE_ADDR)."','".(($board['moderatenew'] == 10 || $board['moderatenew'] == 11) ? (0) : (1))."')");
    $postid = $db->insert_id();

    Ersetze durch:


    $db->query("INSERT INTO bb".$n."_posts (threadid,userid,username,iconid,posttopic,posttime,message,attachments,allowsmilies,allowhtml,allowbbcode,allowimages,showsignature,ipaddress,visible) VALUES ".
    "('$threadid','$wbbuserdata[userid]','".addslashes($wbbuserdata['username'])."','$iconid','".addslashes($topic)."','$time','".addslashes($message)."','".count($attachmentids)."','$allowsmilies','$allowhtml','$allowbbcode','$allowimages','".intval($_POST['showsignature'])."','".addslashes($ipaddr)."','".(($board['moderatenew'] == 10 || $board['moderatenew'] == 11) ? (0) : (1))."')");
    $postid = $db->insert_id();

    ##############
    #addreply.php#
    ##############

    Suche:

    $db->query("INSERT INTO bb".$n."_posts (parentpostid,threadid,userid,username,iconid,posttopic,posttime,message,attachments,allowsmilies,allowhtml,allowbbcode,allowimages,showsignature,ipaddress,visible) VALUES ".
    "('$postid','$threadid','$wbbuserdata[userid]','".addslashes($wbbuserdata['username'])."','$iconid','".addslashes($topic)."','$time','".addslashes($message)."','".count($attachmentids)."','$allowsmilies','$allowhtml','$allowbbcode','$allowimages','".$showsignature."','".addslashes($REMOTE_ADDR)."','".(($board['moderatenew'] == 1 || $board['moderatenew'] == 11) ? (0) : (1))."')");
    $postid = $db->insert_id();

    Ersetze:


    $db->query("INSERT INTO bb".$n."_posts (parentpostid,threadid,userid,username,iconid,posttopic,posttime,message,attachments,allowsmilies,allowhtml,allowbbcode,allowimages,showsignature,ipaddress,visible) VALUES ".
    "('$postid','$threadid','$wbbuserdata[userid]','".addslashes($wbbuserdata['username'])."','$iconid','".addslashes($topic)."','$time','".addslashes($message)."','".count($attachmentids)."','$allowsmilies','$allowhtml','$allowbbcode','$allowimages','".$showsignature."','".addslashes($ipaddr)."','".(($board['moderatenew'] == 1 || $board['moderatenew'] == 11) ? (0) : (1))."')");
    $postid = $db->insert_id();

    ############
    #search.php#
    ############

    Suche 3x vorhanden!

    if (!$savepostids) error($lang->get("LANG_GLOBAL_ERROR_SEARCHNORESULT"));
    $result = $db->query_first("SELECT searchid FROM bb".$n."_searchs WHERE searchhash = '".getQueryHash($savepostids, 0, 'lastpost', 'desc', $wbbuserdata['userid'], $REMOTE_ADDR)."'");

    Ersetze 3x!

    if (!$savepostids) error($lang->get("LANG_GLOBAL_ERROR_SEARCHNORESULT"));
    $result = $db->query_first("SELECT searchid FROM bb".$n."_searchs WHERE searchhash = '".getQueryHash($savepostids, 0, 'lastpost', 'desc', $wbbuserdata['userid'], $ipaddr)."'");

    Suche 3x vorhanden!

    VALUES ('".getQueryHash($savepostids, 0, 'lastpost', 'desc', $wbbuserdata['userid'], $REMOTE_ADDR)."','$savepostids','0','lastpost','desc','".time()."','$wbbuserdata[userid]','$REMOTE_ADDR')");

    Ersetze 3x!

    VALUES ('".getQueryHash($savepostids, 0, 'lastpost', 'desc', $wbbuserdata['userid'], $ipaddr)."','$savepostids','0','lastpost','desc','".time()."','$wbbuserdata[userid]','$ipaddr')");

    Suche:

    if (!$savepostids) error($lang->get("LANG_GLOBAL_ERROR_SEARCHNORESULT"));
    $result = $db->query_first("SELECT searchid FROM bb".$n."_searchs WHERE searchhash = '".getQueryHash($savepostids, 1, 'lastpost', 'desc', $wbbuserdata['userid'], $REMOTE_ADDR)."'");

    Ersetze:

    if (!$savepostids) error($lang->get("LANG_GLOBAL_ERROR_SEARCHNORESULT"));
    $result = $db->query_first("SELECT searchid FROM bb".$n."_searchs WHERE searchhash = '".getQueryHash($savepostids, 1, 'lastpost', 'desc', $wbbuserdata['userid'], $ipaddr)."'");


    Suche:

    $searchid = intval($_GET['searchid']);
    if ($wbbuserdata['userid']) $search = $db->query_first("SELECT * FROM bb".$n."_searchs WHERE searchid='$searchid' AND userid='$wbbuserdata[userid]'");
    else $search = $db->query_first("SELECT * FROM bb".$n."_searchs WHERE searchid='$searchid' AND ipaddress='$REMOTE_ADDR'");

    Ersetze:

    $searchid = intval($_GET['searchid']);
    if ($wbbuserdata['userid']) $search = $db->query_first("SELECT * FROM bb".$n."_searchs WHERE searchid='$searchid' AND userid='$wbbuserdata[userid]'");
    else $search = $db->query_first("SELECT * FROM bb".$n."_searchs WHERE searchid='$searchid' AND ipaddress='$ipaddr'");

    Suche:

    $result = $db->query_first("SELECT searchid FROM bb".$n."_searchs WHERE searchhash = '".getQueryHash($savepostids, $_POST['showposts'], $_POST['sortby'], $_POST['sortorder'], $wbbuserdata['userid'], $REMOTE_ADDR)."'");

    Ersetze:

    $result = $db->query_first("SELECT searchid FROM bb".$n."_searchs WHERE searchhash = '".getQueryHash($savepostids, $_POST['showposts'], $_POST['sortby'], $_POST['sortorder'], $wbbuserdata['userid'], $ipaddr)."'");

    Suche:

    $db->query("INSERT INTO bb".$n."_searchs (searchhash,searchstring,searchuserid,postids,showposts,sortby,sortorder,searchtime,userid,ipaddress)
    VALUES ('".getQueryHash($savepostids, $_POST['showposts'], $_POST['sortby'], $_POST['sortorder'], $wbbuserdata['userid'], $REMOTE_ADDR)."','".addslashes($tempsearchstring)."','".((!strstr($userids, ',')) ? ($userids) : (0))."','$savepostids','".intval($_POST['showposts'])."','".addslashes($_POST['sortby'])."','".addslashes($_POST['sortorder'])."','".time()."','$wbbuserdata[userid]','$REMOTE_ADDR')");
    $searchid = $db->insert_id();

    Ersetze:

    $db->query("INSERT INTO bb".$n."_searchs (searchhash,searchstring,searchuserid,postids,showposts,sortby,sortorder,searchtime,userid,ipaddress)
    VALUES ('".getQueryHash($savepostids, $_POST['showposts'], $_POST['sortby'], $_POST['sortorder'], $wbbuserdata['userid'], $ipaddr)."','".addslashes($tempsearchstring)."','".((!strstr($userids, ',')) ? ($userids) : (0))."','$savepostids','".intval($_POST['showposts'])."','".addslashes($_POST['sortby'])."','".addslashes($_POST['sortorder'])."','".time()."','$wbbuserdata[userid]','$ipaddr')");
    $searchid = $db->insert_id();


    ######################
    #acp/lib/sessions.php#
    ######################

    Suche:

    mt_srand(intval(wbb_substr(microtime(), 2, 8)));

    Füge darüber:

    $ipaddr = "127.0.0.1";

    Suche:

    $session = $db->query_first("SELECT * FROM bb".$n."_sessions WHERE sessionhash = '".addslashes($sid)."' AND ipaddress = '".addslashes($REMOTE_ADDR)."' AND useragent = '".addslashes($HTTP_USER_AGENT)."'")

    Ersetze:

    $session = $db->query_first("SELECT * FROM bb".$n."_sessions WHERE sessionhash = '".addslashes($sid)."' AND ipaddress = '".addslashes($ipaddr)."' AND useragent = '".addslashes($HTTP_USER_AGENT)."'")

    Suche:

    if (isset($guestsession)) { /* guest */
    $db->unbuffered_query("DELETE FROM bb".$n."_sessions WHERE userid='0' AND ipaddress = '".addslashes($REMOTE_ADDR)."' AND useragent = '".addslashes($HTTP_USER_AGENT)."'", 1);

    Ersetze:

    if (isset($guestsession)) { /* guest */
    $db->unbuffered_query("DELETE FROM bb".$n."_sessions WHERE userid='0' AND ipaddress = '".addslashes($ipaddr)."' AND useragent = '".addslashes($HTTP_USER_AGENT)."'", 1);

    Suche 2x vorhanden!

    $session['ipaddress'] = $REMOTE_ADDR;

    Ersetze 2x!

    $session['ipaddress'] = $ipaddr;

    #######################
    #acp/lib/functions.php#
    #######################


    suche:

    /**
    * get the client ip address
    *
    * @return string ip address
    */
    function getIpAddress() {
    global $_SERVER;

    $REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $HTTP_X_FORWARDED_FOR = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else $HTTP_X_FORWARDED_FOR = '';

    if ($HTTP_X_FORWARDED_FOR != '') {
    if (preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $HTTP_X_FORWARDED_FOR, $ip_match)) {
    $private_ip_list = array("/^0\./", "/^127\.0\.0\.1/", "/^192\.168\..*/", "/^172\.16\..*/", "/^10..*/", "/^224..*/", "/^240..*/");
    $REMOTE_ADDR = preg_replace($private_ip_list, $REMOTE_ADDR, $ip_match[1]);
    }
    }

    if (wbb_strlen($REMOTE_ADDR) > 16) $REMOTE_ADDR = wbb_substr($REMOTE_ADDR, 0, 16);
    return $REMOTE_ADDR;
    }

    ersetze durch:

    /**
    * get the client ip address
    *
    * @return string ip address
    */
    function getIpAddress() {
    global $_SERVER;

    $ipaddr = "127.0.0.1";
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $HTTP_X_FORWARDED_FOR = $_SERVER['HTTP_X_FORWARDED_FOR'];
    else $HTTP_X_FORWARDED_FOR = '';

    if ($HTTP_X_FORWARDED_FOR != '') {
    if (preg_match("/^([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/", $HTTP_X_FORWARDED_FOR, $ip_match)) {
    $private_ip_list = array("/^0\./", "/^127\.0\.0\.1/", "/^192\.168\..*/", "/^172\.16\..*/", "/^10..*/", "/^224..*/", "/^240..*/");
    $ipaddr = preg_replace($private_ip_list, $ipaddr, $ip_match[1]);
    }
    }

    if (wbb_strlen($ipaddr) > 16) $ipaddr = wbb_substr($ipaddr, 0, 16);
    return $ipaddr;
    }


    #################
    #Datenbankupdate#
    #################

    In phpMyAdmin ein Query aufrufen und folgende Zeilen eingeben:

    UPDATE bb1_posts SET ipaddress='127.0.0.1';
    UPDATE bb1_searchs SET ipaddress='127.0.0.1';
    UPDATE bb1_sessions SET ipaddress='127.0.0.1';
    UPDATE bb1_adminsessions SET ipaddress='127.0.0.1';

    Nun werde alle IPs als 127.0.0.1 (localhost) gespeichert.


    ###############
    ## Hinweis ##
    ###############
    Bei Fragen einfach unter http://www.yourwbb.info an Jack oder direkt im Thread.
    Dieser Hack wurde auf meinem Privaten Server geschrieben und getestet.
    Haftung für eventuell enstehende Schäden wird nicht übernommen!
    Und noch eins ich gebe keinen Support per Mail, PN, IRC und ICQ solltet ihr Fragen haben dann bitte im Board stellen.
    Vielen Dank
    Greetz Jack
     
  3. 9. März 2006
    Anfrage erfüllt. Bei Fragen bitte PN schreiben.

    ~close~

    mfg mike
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.