Seite 1 von 1

Sicherheit

Verfasst: 10.03.2006 15:48
von Jan88
Hallo,

ich habe dieses Skript zum Prüfen des Onlinestatus und um an die daten des Users zu kommen.

Code: Alles auswählen

<?php
error_reporting(E_ALL);
include("data/open.inc.php");
$sid = $_COOKIE['phpbb_sid'];
// Meine Abfrage
$sql = "SELECT
        s.session_logged_in
      FROM
        phpbb_sessions AS s
      WHERE
        s.session_id = '$sid'";
$result = mysql_query($sql);
if ($result) 
{
   $row = mysql_fetch_array($result, MYSQL_ASSOC);
   $online =(implode($row));
} 
else 
{
   echo "<p>".mysql_error($conn);
}
// Ende meiner Abfrage
if ($online == '1')
{
// überhalb von hier stimmt alles
$sql = "SELECT
        s.session_user_id,
        u.*
      FROM
        phpbb_sessions AS s,
        phpbb_users AS u
      WHERE
        s.session_id = '$sid'
          AND
        u.user_id = s.session_user_id";
$result = mysql_query($sql);
if ($result) 
{
   echo "<table border=1><tr>";
   $row = mysql_fetch_array($result, MYSQL_ASSOC);
   while ($field = key($row)) 
   {
      echo '<th>' . ucwords($field) . '</th>';
      next($row);
   }  
   echo "</tr>";
   echo "<tr><td>";
   echo implode("</td><td>",$row);
   echo "</td></tr>";
   while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
   {
      echo "<tr><td>";
      echo implode("</td><td>",$row);
      echo "</td></tr>";
   }
   echo "</table>";
   echo "<p>Abfrage: <pre>$sql</pre>";
} 
else 
{
   echo "<p>".mysql_error($conn);
}}
Ist das sicher? Kann ich mich verlassen das so keine Falsche User auf meine Seiten kommen?

Jan

Verfasst: 10.03.2006 16:01
von fanrpg

Code: Alles auswählen

$sid = $_COOKIE['phpbb_sid'];
$sql = "SELECT 
        s.session_logged_in 
      FROM 
        phpbb_sessions AS s 
      WHERE 
        s.session_id = '$sid'";
UNSICHER!!!!!

Code: Alles auswählen

$sid = str_replace("\'", "''", $_COOKIE['phpbb_sid']);
$sid = str_replace("\\", "\\\\", $sid);
$sql = "SELECT 
        s.session_logged_in 
      FROM 
        phpbb_sessions AS s 
      WHERE 
        s.session_id = '$sid'";
Sicherer!

In Bezug auf SQL-Injectionen. Cookies können gefälscht werden.

Verfasst: 11.03.2006 10:54
von Jan88
Aber kann ich damit den Online Status prüfen? Also mit der Abfrage ob in der session tabelle session_logged_in der wert 0/1 ist?

Oder wie prüf ich den onlinestatus des users?

Jan

Verfasst: 12.03.2006 11:49
von Jan88
Wie kann ich mit einem einfachen Skript prüfen ob der User online ist und sich eingeloggt hat?