ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1595
1595
EMPFEHLEN
-
Hallo,
ein Kollege hat mich auf eine sehr große Sicherheitslücke auf meiner Seite hingewiesen. Und zwar kann man per Include externe Seiten auf meiner Anzeigen und dadurch ist das hacken möglich.
Meine Frage: Ist es möglich das Includen von externen Seiten (zuverlässig) zu sperren? Oder sollte ich lieber eine sicherere Alternative wählen? (Welche?).
Meine Includ INDEX sieht so aus:
PHP-Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Greatest Deejays</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div id="container">
<table width="820" border="0" cellpadding="0" cellspacing="0">
<tr><td width="695">
<table width="695" border="0" cellpadding="0" cellspacing="0">
<tr><td width="695">
<img src="Bilder/index1d_01.gif" width="695" height="26" border="0" alt=""></td>
</tr>
<tr>
<td width="695">
<table width="695" border="0" cellpadding="0" cellspacing="0" background="Bilder/bg.gif">
<td width="175" valign="top"><p><img src="Bilder/index1d_03.gif" width="175" height="156" border="0" alt="">
</p>
<p> </p>
<table width="175" border="0" cellpadding="0" cellspacing="0"><tr><td width="12"></td><td width="163">
<div id="navi">
<div class="menuhead">.: Allgemein </div><br>
<div class="menuItem"><a href="index.php"> » Startseite </a></div>
<div class="menuItem"><a href="index.php?site=dls.php"> » Downloads </a></div>
<div class="menuItem"><a href="index.php?site=release_infos.php"> » Release Infos </a></div>
<div class="menuItem"><a href="index.php?site=main.php&open=search"> » Suche</a></div>
<div class="menuItem"><a href="index.php?site=gb.php"> » <b>Gästebuch</b> </a></div>
<div class="menuItem"><a href="index.php?site=links.php"> » Links </a></div>
<div class="menuItem"> </div>
<div align="center">
<div class="menuItem"><iframe src="check_users.php" frameborder=0 width="165" height="12" name="users"></iframe></div>
<div class="menuItem"> </iframe></div>
</td></tr></table></div>
</td><td width="520" valign="top"><img src="Bilder/content.gif" width="520" height="16" border="0" alt=""><table width="520" border="0" cellpadding="0" cellspacing="0"><tr><td width="25"></td><td width="480"></center><?
$site = (isset ($_REQUEST['site'])) ? $_REQUEST['site'] : '';
$host=$_SERVER['HTTP_HOST'];
if($site=="") {
// News System Include
include("http://$host/main.php?open=news");
}
else {
include($site);
}
?>
</td><td width="15"></td></tr></table> </td></tr></table>
</td></tr>
<tr><td valign="top"><img src="Bilder/footer.gif" width="695" height="72" border="0" alt=""> </td></tr></table></td><td width="125" valign="top"><TABLE WIDTH="125" BORDER="0" CELLPADDING="0" CELLSPACING="0" background="Bilder/naviright_02.gif" bgcolor="#FFFFFF">
<TR>
<TD>
<IMG SRC="Bilder/naviright_01.gif" WIDTH=125 HEIGHT=32 ALT=""></TD>
</TR>
<tr><td><TABLE WIDTH="125" BORDER="0" CELLPADDING="0" CELLSPACING="0"><tr><td width="15"></td><td width="95"><?
require("http://$host/main.php?open=newest5"); ?>
</td><td width="15"></td></tr></table></td></tr>
<TR>
<TD>
<IMG SRC="Bilder/naviright_03.gif" WIDTH=125 HEIGHT=28 ALT=""></TD>
</TR>
</TABLE></td></tr></table> </div>
</BODY>
</HEAD
></HTML>Geändert von PHP-Fan (11.06.06 um 14:38 Uhr) Grund: Was falsch formatiert
-
Du solltest, bspw. per switch, selbst festlegen, welche Dateien includet werden können
Beispiel:Es ist übrigens sehr unpassend, Dateien über HTTP anzufordern.... dadurch explodiert dein Traffic, weil deine eigenen Dateien wie fremde behandelt werden.PHP-Code:switch($site)
{
case 'bla':
include("http://$host/main.php?open=bla");
break;
case 'blubb':
include("http://$host/main.php?open=blubb");
break;
default:
include("http://$host/main.php?open=news");
}
Ist schon klar, dass es sein muss, wenn du Parameter per URL übergeben willst, aber verzichte lieber drauf und definiere stattdessen eine Variable $open im Skript, darauf kann die main.php dann zugreifen sobald sie includet wurde.
-
Vielen Dank erst eimmal. Obereres habe ich hoffentlich verstanden und werde ich gleich mal ausprobieren.
Zitat von Sven Mintel
Letzteres habe ich auch verstanden weiß aber nicht ganz wie ich das umsetzen sollte. Vielen Dank schonmal für deie Tipps!
Schöne grüße aus Düsseldorf
-
Arbeite am besten mit deaktivierte „allow_url_fopen“-Konfigurationsoption. Damit sind Anfragen außerhalb des Servers außer mit der fsockopen()-Funktion nicht mehr möglich. Zusätzlich könntest du noch prüfen, ob die einzubindende Datei lokal existiert (siehe file_exists()-Funktion).
Markus Wulftange
-
Mal vorrausgesetzt, du willst immer die main.php includen...würde es so aussehen:
Zitat von PHP-Fan
in der main.php hättest du dann die Variable $open verfügbar...anhand der du dann fortfahren kannst.PHP-Code:switch($site)
{
case 'bla':
$open='bla';
break;
case 'blubb':
$open='blubb';
break;
default:
$open='news';
}
include('main.php');
Ähnliche Themen
-
Linkschreibweise zu Externen Seiten checken in PHP
Von BugsBastard im Forum PHPAntworten: 2Letzter Beitrag: 28.05.08, 15:11 -
PHP Seiten sicher includen
Von starfoxfs im Forum PHPAntworten: 5Letzter Beitrag: 11.02.08, 10:52 -
Seiten includen per Link?
Von SasserVirus im Forum PHPAntworten: 2Letzter Beitrag: 27.07.07, 01:24 -
PHP-Sicherheit - Externes includen verbieten
Von PHP-Fan im Forum PHPAntworten: 3Letzter Beitrag: 10.09.06, 13:29 -
Seiten aus der Datenbank includen...
Von weightwatcher im Forum PHPAntworten: 2Letzter Beitrag: 18.12.04, 20:20





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren