Seite 2 von 2

Re: 3.1.8 Fehler {LOCAL_URL} Link & Benutzerkennung

Verfasst: 01.03.2016 19:44
von Talk19zehn
Hm, aber das war doch nie anders? Oder welchen Part habe ich verpasst, nicht berücksichtigt? Demnach liege ich in der Beurteilung (Themenstart) falsch.

Okay, ich pausiere ein weiteres Mal. Das wird wohl meinerseits ein "Ost-Groschen" .. :roll:

LG

Re: 3.1.8 Fehler {LOCAL_URL} Link & Benutzerkennung

Verfasst: 01.03.2016 20:04
von tas2580
Richtig, es war schon immer so das du wenn du kein Cookie und keine SID als URL-Parameter übergibst abgemeldet wirst. Das liegt einfach am Protokoll mit dem das Web läuft.

Gruß Tobi

Re: 3.1.8 Fehler {LOCAL_URL} Link & Benutzerkennung

Verfasst: 02.03.2016 08:57
von netwurm
Hi,

Ich teste derzeit die neue Version 3.1.8 lokal und versuche die Spam-Einträge / Anmeldungen welche eine Schwachstelle der Vorgängerversion genutzt haben zu eliminieren.
Es war mir möglich sämtliche Bot-Anmeldungen / Benutzerkontenerstellung in der Datenbank zu löschen.
Von Prinzip her hatte ich das bei der Vorgängerversion so gelöst das ich den Anmeldebutton per Javascript deaktiviert war. Welcher mit erreichen einer Bedingung (Punktestand) als Cookie aktiviert wurde.


Diese Schutzmaßnahme möchte ich jetzt per PHP in den Anmeldeprozesses integrieren.

Beispiel:

Code: Alles auswählen


If($meine_Bedingung === true)
{
define('FORUM_USER_DARF_SICH_ANMELDEN', true); 
}

if (defined('FORUM_USER_DARF_SICH_ANMELDEN')) {
    
Code: Jetzt Anmeldung möglich PHPBB
}
 
Wo bzw. welche Datei macht Sinn um meine Bedingung / phpCode einzubinden?
Wo bzw. welche Änderungen sind am phpbb Quelltext notwendig?
Wie kann ich eigene Super Globale definieren ohne das ich insgesamt die Schutzmechanismen / Globale vom Forum deaktiviere?
- habe das bis jetzt unklug gelöst:

in der request.php

namespace phpbb\request;
protected $super_globals_disabled = true;

das ist nicht so gut ....

besser:

eine Ausnahme

Code: Alles auswählen

$_COOKIE['meinWert']  // darf 
$_SESSION['meinWert'] // draf   
gleiche Rechte

Code: Alles auswählen

@require_once($_SERVER["DOCUMENT_ROOT"].'/incMeinverzeichnis/meineCode.php);
Hm, viele Fragen ich hoffe ich konnte das einigermaßen in Worte kleiden...

Grüße Netwurm

Re: 3.1.8 Fehler {LOCAL_URL} Link & Benutzerkennung

Verfasst: 02.03.2016 16:02
von tas2580
netwurm hat geschrieben:Von Prinzip her hatte ich das bei der Vorgängerversion so gelöst das ich den Anmeldebutton per Javascript deaktiviert war. Welcher mit erreichen einer Bedingung (Punktestand) als Cookie aktiviert wurde.
Das bringt nur bedingt was da Bots 1. kein JavaScript können und 2. keine Buttons benutzen. Ich hab dazu vor einiger Zeit mal einen Blogpost geschrieben.
netwurm hat geschrieben:Wo bzw. welche Datei macht Sinn um meine Bedingung / phpCode einzubinden?
Wo bzw. welche Änderungen sind am phpbb Quelltext notwendig?
Wie kann ich eigene Super Globale definieren ohne das ich insgesamt die Schutzmechanismen / Globale vom Forum deaktiviere?
- habe das bis jetzt unklug gelöst:
Änderungen an den Dateien sind keine gute Idee, dafür gibt es Extensions.

Was genau hast du denn vor? Willst du einfach eine eigene Seite zu phpBB hinzufügen oder willst du die Anmeldung von phpBB auf deiner Webseite mit eigenem PHP Code benutzen?

Gruß Tobi

Re: 3.1.8 Fehler {LOCAL_URL} Link & Benutzerkennung

Verfasst: 02.03.2016 17:30
von netwurm
Hi,

habe mich durchgewühlt....

includes\funktions_user.php


Code: Alles auswählen

function user_add($user_row, $cp_data = false, $notifications_data = null)
{
     If($spamfilter === true)
      {
      return false;  
      }
}
@Das bringt nur bedingt was da Bots 1. kein JavaScript können und 2. keine Buttons benutzen.
aber "normal" User schon

hatte damals die Richtigen Nutzer in der DB mit geschrieben....

Was das Spam Aussortieren enorm vereinfachte jedoch keine Spam Sicherheit schaffte.

Code: Alles auswählen

SPALTE =  `phpbbneu_profile_fields_data` bzw. `phpbbneu_user_group` usw.     
Delete FROM  SPALTE   WHERE NOT FIND_IN_SET(user_id,'1,2,5,6,357,307,15,140,323,141,196,22,23,57,4,288,138,139,38
,4767,4852,3430,2499,7,121,6920,6912,6667,6774,5027,316,317,268,8,10,11,9,41,13,14,16,20,17,18,19,21,32,25,24
,80,26,27,28,29,30,31,43,33,34,35,37,36,39,44,134,137,40,58,42,45,46,54,47,49,48,308 usw........ 


@Extensions
Muss ich mich erst reinknie um da durchzusehen ....

@Was genau hast du denn vor?
phpbb möglichst Spam Sicher machen ;o)

Und vor allen Dingen die Anmeldung Global auf der Domain nutzen zu können um Benutzer zu verifizieren. phpbb ist keine schlechte Sache aber eben anfällig wie Joomla auch ....
Was mir jetzt richtig helfen könnte für die Version 3.1.8 eine Externe Anmeldung (per PHP) eine Verzeichnis Ebene höher
Danach kann ich dann phpbb Cookie nutzen für eine Interaktion mit phpbb...

Grüße Netwurm

Re: 3.1.8 Fehler {LOCAL_URL} Link & Benutzerkennung

Verfasst: 03.03.2016 20:23
von netwurm
Hi,

Hier mein Login


Cookie Path Website = / Bei separaten Login bzw. Formular
Cookie Path Forum = / Einstellungen Forum


Session Validieren !!!

Code: Alles auswählen

if($_COOKIE['tt_sid'] and preg_match("/^([0-9a-z])+$/", $_COOKIE['tt_sid']))
{
$sql = "SELECT u.user_id, u.user_type,u.group_id, u.username FROM phpbbneu_sessions s, phpbbneu_users u WHERE s.session_id = '".$_COOKIE['tt_sid']."' AND u.user_id = s.session_user_id";
$rs = @mysql_query($sql, $conn_ln);
@list($id_usr,$typ_user,$group_id, $name_user) = @mysql_fetch_row($rs);
//echo  "  $sql <hr> $id_usr,$typ_user,$group_id,$name_user";
}
Rechte Validieren !!!

Code: Alles auswählen

if (preg_match("/^(5|2|10)$/", $group_id) AND preg_match("/^(0|3)$/", $typ_user) AND !empty($name_user) AND !empty($id_usr))
{
  return true;
}
else
{
   return false;
}

Code Anpassen für Formular

$_POST Validieren !!!

Code: Alles auswählen


<?php

define('ROOT_PATH', $_SERVER["DOCUMENT_ROOT"].'/phpbbforum/');
define('IN_PHPBB', true);

$username    ='tester3';
$password    ='tester3pass';
$autologin    ='';
$viewonline    ='';


$phpbb_root_path = ROOT_PATH;
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_module.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);

$user->session_begin();
$auth->acl($user->data);
$user->setup('ucp');


$login = array();
$login = $auth->login($username, $password, $autologin, $viewonline);



if($login['status'] == LOGIN_SUCCESS || $user->data['user_id'] != ANONYMOUS)
{
    if(!empty($login)) $auth->acl($user->data);

    echo "<h1>Drinnn</h1>";

}
else
{
    echo "<h1>neeee</h1>";
}

?>


Re: 3.1.8 Fehler {LOCAL_URL} Link & Benutzerkennung

Verfasst: 03.03.2016 21:29
von tas2580
Das geht auch kürzer ;)

Code: Alles auswählen

<?php

define('ROOT_PATH', './');
define('IN_PHPBB', true);

$phpbb_root_path = ROOT_PATH;
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$user->session_begin();
$auth->acl($user->data);

if ($user->data['is_registered'])
{
    echo 'angemeldet';
}
else
{
    echo 'nicht angemeldet';
} 
So kannst du die die 2. Datei sparen und musst nicht selber irgend welche DB Anfragen machen oder Cookies lesen.

Gruß Tobi

Re: 3.1.8 Fehler {LOCAL_URL} Link & Benutzerkennung

Verfasst: 04.03.2016 09:02
von netwurm
Hi, Tobi

vielen Dank für Deinen Post !

So wie ich das bis jetzt analysiert habe wird ein SID Cookie gesetzt welcher nach erfolgreicher Anmeldung 1 Jahr Gültigkeit hat. PHPBB ist Objekt orientiert programmiert d.H ich Schleife bei jeden Zugriff auf die PHPBB-Energie unnötigen Ballast in denn Arbeitsspeicher meiner Cluster-Server, was aus meiner Sicht bei einer stark frequentierten Seite einen künstlichen Flaschenhals erzeugt.

Ich denke die Lösung mit dem Cookie und ein Abgleich der Session-DB ist eine vernünftige Alternative .... wobei ein Cookie auch geklaut werden kann ...
Naja, vielleicht verifiziere ich die ganze Sache noch mit einem separaten Canvas-Fingerprint... bin noch beim überlegen wie ich das geschickt anstellen.

Zumindest ist die Cookie-Lösung eine Möglichkeit zwischen Forum und eigener Anwendung eine Schnittstelle zu schaffen...

Grüße und nochmal Danke
Netwurm