saftmeister
Nutze den Saft!
Ohne Code kann man da wohl nur spekulieren, warum es nicht funktioniert.
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
$abfrage1 = "SELECT * FROM sw_portal WHERE username LIKE '$user'";
$ergebnis1 = mysql_query($abfrage1)
OR die("Error: $abfrage1 <br>".mysql_error());
while($row1 = mysql_fetch_object($ergebnis1))
{
if($row1->admin=="1")
{
echo "<br><br>";
echo "<a href=\"admin/admin_change_662712315.php?set=$id\">Diese Seite ändern</a>";
}
?>
<?php
session_start();
include("l/mysql_connect.php");
$id=$_GET['set'];
$abfrage = "SELECT * FROM sw_homepage_seiten WHERE ID LIKE '$id'";
$ergebnis = mysql_query($abfrage)
OR die("Error: $abfrage <br>".mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
include("include/variablen.php"); ?>
<!-- Ende Variablen -->
<link rel="SHORTCUT ICON" href="<?php echo "$url"; ?>/images/favicon.ico">
<link rel="STYLESHEET" type="text/css" href="<?php echo "$url"; ?>/css/default.css">
<title><?php echo $row->seitentitel; ?></title>
<!-- Bis hier bitte nichts entfernen -->
<!-- Start
POPUP -->
<!-- Ende
POPUP -->
<!-- Start
Fotobox -->
<script type="text/javascript">
var GB_ROOT_DIR = "<?php echo "$url"; ?>/js/box/";
</script>
<script type="text/javascript" src="<?php echo "$url"; ?>/js/box/AJS.js"></script>
<script type="text/javascript" src="<?php echo "$url"; ?>/js/box/AJS_fx.js"></script>
<script type="text/javascript" src="<?php echo "$url"; ?>/js/box/gb_scripts.js"></script>
<link href="<?php echo "$url"; ?>/js/box/gb_styles.css" rel="stylesheet" type="text/css" />
<!-- End
Fotobox -->
<!-- Start
Videobox -->
<script type="text/javascript" src="<?php echo "$url"; ?>/js/video/mootools.js"></script>
<script type="text/javascript" src="js/video/swfobject.js"></script>
<script type="text/javascript" src="js/video/videobox.js"></script>
<link rel="stylesheet" href="<?php echo "$url"; ?>/js/video/videobox.css" type="text/css" media="screen" />
<!-- End
Videobox -->
<!-- Start
Header -->
<div id="header"></div>
<!-- End
Header -->
<?php
if ($id=="78926" OR $id=="78927" OR $id=="78928")
{
echo " ";
}
else
{
?>
<!-- Start
Navigation -->
<div id="navi">
<br><br>
<?php include("include/navigation.html"); ?>
</div>
<!-- Ende
Navigation -->
<? } ?>
<!-- Start
Randbox -->
<?php include("include/randbox.html"); ?>
<!-- Ende
Randbox -->
<!--Start
Content -->
<div id="content">
<?php
$user=$_SESSION['username'];
if ($id=="")
{
Header("Location: render.php?set=1");
}
else
{
echo "<h1>".$row->ueberschrift."</h1>";
echo $row->Text;
}
$abfrage1 = "SELECT * FROM sw_portal WHERE username LIKE '$user'";
$ergebnis1 = mysql_query($abfrage1)
OR die("Error: $abfrage1 <br>".mysql_error());
while($row1 = mysql_fetch_object($ergebnis1))
{
if($row1->admin=="1")
{
echo "<br><br>";
echo "<a href=\"admin/admin_change_662712315.php?set=$id\">Diese Seite ändern</a>";
}
?>
</div>
<!-- End
Content -->
<!-- Start
Footer -->
<!-- Kein footer angegeben. Bitte melden Sie sich im ACP an um dieses zu ändern. -->
<!-- Ende
Footer -->
<? } ?>
<? } ?>
$abfrage1 = "SELECT * FROM sw_portal WHERE username LIKE '$user'";
$ergebnis1 = mysql_query($abfrage1)
OR die("Error: $abfrage1 <br>".mysql_error());
while($row1 = mysql_fetch_object($ergebnis1))
{
if($row1->admin=="1")
{
echo "<br><br>";
echo "<a href=\"admin/admin_change_662712315.php?set=$id\">Diese Seite ändern</a>";
}
}
?>
// Wo kommt $user her? Ist das validiert? Außerdem werden nicht alle Spalten sonder nur 'admin' benötigt. LIKE ist hier m.M.n. nicht gut.
$abfrage1 = "SELECT admin FROM sw_portal WHERE username LIKE '$user'";
// Query starten und Rückgabe prüfen - gut!
$ergebnis1 = mysql_query($abfrage1)
or die("Error: $abfrage1 <br>".mysql_error());
$row1 = mysql_fetch_object( $ergebnis1 );
if( $row1 && $row1->admin == '1') // ist die Spalte 'admin' wirklich ein Character oder eher Integer?
{
echo '<br/><br/>';
echo '<a href="admin/admin_change_662712315.php?set=' . intval($id) . '">Diese Seite ändern</a>'; // Habe $id mal forciert auf INT (siehe Anmerkung)
}
http://deineseite.de/script.php?set=1"><script>alert('XSS');</script></a><a href="http://meineseite.de/meinscript.php
<a href="admin/admin_change_662712315.php?set=1"><script>alert('XSS');</script></a><a href="http://meineseite.de/meinscript.php">Diese Seite ändern</a>
So ist der Code etwas sicherer.
Ohne die INT-Forcierung könnte man ein XSS anstellen: $id wird aus $_GET['set'] geholt. Laut deinem Code wird das immer noch nicht geprüft, wie bereits vorgeschlagen. Folgendes Szenario: Ich konstruiere folgende URL:
<?php
session_start();
include("l/mysql_connect.php");
$id = intval($_GET['set']);
if (!$id) $id = 1;
<?php
$user=$_SESSION['username'];
echo "<h1>".$row->ueberschrift."</h1>";
echo $row->Text;
// Wo kommt $user her? Ist das validiert? Außerdem werden nicht alle Spalten sonder nur 'admin' benötigt. LIKE ist hier m.M.n. nicht gut.
$abfrage1 = "SELECT admin FROM sw_portal WHERE username LIKE '$user'";
// Query starten und Rückgabe prüfen - gut!
$ergebnis1 = mysql_query($abfrage1)
or die("Error: $abfrage1 <br>".mysql_error());
$row1 = mysql_fetch_object( $ergebnis1 );
if( $row1 && $row1->admin == '1') // ist die Spalte 'admin' wirklich ein Character oder eher Integer?
{
echo '<br/><br/>';
echo '<a href="admin/admin_change_662712315.php?set=' . intval($id) . '">Diese Seite ändern</a>'; // Habe $id mal forciert auf INT (siehe Anmerkung)
?>
$row1 = mysql_fetch_object( $ergebnis1 );
Logger:log( $abfrage1 );
if( $row1 && $row1->admin == '1') // ist die Spalte 'admin' wirklich ein Character oder eher Integer?
{
echo '<br/><br/>';
echo '<a href="admin/admin_change_662712315.php?set=' . intval($id) . '">Diese Seite ändern</a>'; // Habe $id mal forciert auf INT (siehe Anmerkung)
}
else
{
Logger:log('No admin - no link: $row1->admin = ' . $row1->admin);
}
// Query starten und Rückgabe prüfen - gut!
$ergebnis1 = mysql_query($abfrage1)
or die("Error: $abfrage1 <br>".mysql_error());
$row1 = mysql_fetch_object( $ergebnis1 );
Debug::dump( $row1 );
<?php
session_start();
include("l/mysql_connect.php");
$id = intval($_GET['set']);
if (!$id) $id = 1;
$abfrage = "SELECT * FROM sw_homepage_seiten WHERE ID LIKE '$id'";
$ergebnis = mysql_query($abfrage)
OR die("Error: $abfrage <br>".mysql_error());
while($row = mysql_fetch_object($ergebnis))
{
include("include/variablen.php"); ?>
<!-- Ende Variablen -->
<link rel="SHORTCUT ICON" href="<?php echo "$url"; ?>/images/favicon.ico">
<link rel="STYLESHEET" type="text/css" href="<?php echo "$url"; ?>/css/default.css">
<title><?php echo $row->seitentitel; ?></title>
<!-- Bis hier bitte nichts entfernen -->
<!-- Start
POPUP -->
<!-- Ende
POPUP -->
<!-- Start
Fotobox -->
<script type="text/javascript">
var GB_ROOT_DIR = "<?php echo "$url"; ?>/js/box/";
</script>
<script type="text/javascript" src="<?php echo "$url"; ?>/js/box/AJS.js"></script>
<script type="text/javascript" src="<?php echo "$url"; ?>/js/box/AJS_fx.js"></script>
<script type="text/javascript" src="<?php echo "$url"; ?>/js/box/gb_scripts.js"></script>
<link href="<?php echo "$url"; ?>/js/box/gb_styles.css" rel="stylesheet" type="text/css" />
<!-- End
Fotobox -->
<!-- Start
Videobox -->
<script type="text/javascript" src="<?php echo "$url"; ?>/js/video/mootools.js"></script>
<script type="text/javascript" src="js/video/swfobject.js"></script>
<script type="text/javascript" src="js/video/videobox.js"></script>
<link rel="stylesheet" href="<?php echo "$url"; ?>/js/video/videobox.css" type="text/css" media="screen" />
<!-- End
Videobox -->
<!-- Start
Header -->
<div id="header"></div>
<!-- End
Header -->
<?php
if ($id=="78926" OR $id=="78927" OR $id=="78928")
{
echo " ";
}
else
{
?>
<!-- Start
Navigation -->
<div id="navi">
<br><br>
<?php include("include/navigation.html"); ?>
</div>
<!-- Ende
Navigation -->
<? } ?>
<!-- Start
Randbox -->
<?php include("include/randbox.html"); ?>
<!-- Ende
Randbox -->
<!--Start
Content -->
<div id="content">
<?php
$user=$_SESSION['username'];
echo "<h1>".$row->ueberschrift."</h1>";
echo $row->Text;
// Wo kommt $user her? Ist das validiert? Außerdem werden nicht alle Spalten sonder nur 'admin' benötigt. LIKE ist hier m.M.n. nicht gut.
$abfrage1 = "SELECT admin FROM sw_portal WHERE username LIKE '$user'";
// Query starten und Rückgabe prüfen - gut!
$ergebnis1 = mysql_query($abfrage1)
or die("Error: $abfrage1 <br>".mysql_error());
$row1 = mysql_fetch_object( $ergebnis1 );
if( $row1 && $row1->admin == '1') // ist die Spalte 'admin' wirklich ein Character oder eher Integer?
{
echo '<br/><br/>';
echo '<a href="admin/admin_change_662712315.php?set=' . intval($id) . '">Diese Seite ändern</a>'; // Habe $id mal forciertauf INT (siehe Anmerkung)
}
else
{
echo "Kein Admin? Kein Link";
// Wird weiter unten beendet!
?>
</div>
<!-- End
Content -->
<!-- Start
Footer -->
<!-- Kein footer angegeben. Bitte melden Sie sich im ACP an um dieses zu ändern. -->
<!-- Ende
Footer -->
<? } ?>
<? } ?>
<?php
session_start();
include 'mysql_connect.php';
$username = mysql_real_escape_string($_POST['user']);
$password = mysql_real_escape_string($_POST['pass']);
$sql = 'SELECT * FROM `sw_portal` WHERE `username` = "'.$username.'" AND `passwort` = "'.$password.'" LIMIT 1';
if(!($result = mysql_query($sql)))
{
include 'login.php';
}
else {
$data = mysql_fetch_assoc($result);
$_SESSION['username'] = $data['username']; //Das ist die $user
$_SESSION['password'] = $data['passwort'];
$_SESSION['benutzergroup'] = $data['benutzergroup'];
include 'start.php';
}
<?php
session_start();
switch($_SESSION['benutzergroup']) {
case 'D********Ct':
include 'ben/D********Ct.php'; // Familie
break;
case 'F*****04IBgyei':
include 'ben/F*****04IBgyei.php'; // Kohlfahrt
break;
case 'imwZ*****qFDr':
include 'ben/imwZ*****qFDr.php'; // Berlin
break;
case 'WbZai*****8lJrMwv':
include 'ben/WbZai*****8lJrMwv.php'; // Meckpomm
break;
case 'OlS*****TZzeNptZ':
include 'ben/OlS*****TZzeNptZ.php'; // Eine friends
break;
default:
header ('Location: render.php?set=7'); // Loginseite
break;
}
?>
/* Ich habe in die Codes OlS*****TZzeNptZ u.a. desshalb ** reingemacht, weil diese bei der Registration als Aktivierungscode benötigt werden, aber natürlich nur befugte Menschen in die einzelnen Gruppen darf */