![]() |
Meine PHP-Seite ist unsicher!
hi,
ich habe mich nun nach langem html proggen zu php weitergetraut, und meine seite komplett auf php umgeschrieben. alles geht zwar um einiges einfacher mit php, nur jeder depp kann meine seiten verhunzen, weil ich alle möglichen weitergegebenen variablen direkt anzeigen lasse und jeder kann da mit seinem eigenen php-code alles verhunzen! wie kann man ALLE variablen die von einem dokument zum anderen weitergegeben werden, so formatieren, dass sie nur den html-code anzeigen (also z.b.
Code:
)?
$mod=get_html_translation_table(HTML_SPECIALCHARS);
if(isset($load)) $load=strtr($load, $mod); ich hab nämlich keine lust, alle variablen extra so umzuschreiben (1. wegen der größe der index.php und 2. wegen dem aufwand) PLEASE HELP!!!! PS: ich weisss schon selbst, warum ich meine homepage nicht angegeben habe... :wink: |
Re: Meine PHP-Seite ist unsicher!
Hi!
Was bitte willst du machen? Irgendwie verstehe ich dein Problem nicht richtig. Gib bitte mal ein bisschen mehr Code von deiner Seite bzw. den Link zu der Seite, mit der du das Problem hast. Mamphil |
Re: Meine PHP-Seite ist unsicher!
naja hier en bissel code:
<?php echo "<H2>$loc</H2>\n"; //übergebende variable ist §loc $filenamen="data/$loc.inc.php"; include($filenamen); ?> (also stark vereinfacht) aber so in etwa ist es un dan auf der page mit noch mehr eigenschaften für texte usw... also mein problem: für $loc kann man beliebigen html-code und php-code eintragen und die seite verändern und auf geschützten inhalt zugreifen... das will ich nicht. wie kann man $loc und alle anderen variablen zu stinknormalem html code machen? also wie ... zu … ihr wisst wahrscheinlich schon was ich meine? PLEASE HELP |
Re: Meine PHP-Seite ist unsicher!
htmlspecialchars($variable)
|
Re: Meine PHP-Seite ist unsicher!
hi!
thanx für deine einfachere lösung Melfin! (hab sie allerdings noch net ausprobiert... :oops: ) gibt es keine lösung, einfach ALLE variablen so zu formatieren?? PLEASE HELP!! |
Re: Meine PHP-Seite ist unsicher!
Hi!
Code:
Du musst dann allerdings immer mit $_REQUEST['deinVariablenName'] arbeiten (?)
// Alle $_REQUEST-Variabeln umformatieren:
foreach ($_REQUEST as $name => $value) $_REQUEST[$name] = htmlspecialchars($value); Mamphil |
Re: Meine PHP-Seite ist unsicher!
naja...aber ich erspar mir damit fast nix, weil ich ja alle variablen in ein array schreiben muss oder so...aber gefällt mir schon besser als alles einzeln zu formatieren...
THANX!!!! |
Re: Meine PHP-Seite ist unsicher!
Nein, das Array $_REQUEST existiert schon. Es enthält alle Variablen, die per POST (z. B. über Formulare) oder per GET (in der URL) übergeben werden.
Mamphil |
Re: Meine PHP-Seite ist unsicher!
Hi,
dem User den includepath anzuvertrauen halte ich für grob fahrlässig :( Wenn der nun index.php?loc=../../../../../etc/passwd aufruft? Definier lieber ne Tabelle mit allen möglichen sicheren Includepaths und überprüfe die dann, zb so:
Code:
cu
$valid_paths = array("index","news","content","guestbook");
$valid = false; foreach ($valid_paths as $vp) if ($vp == $_GET['loc']) // das erspart dir die (unsichere) Einstellung register_globals = on $valid = true; if (!$valid) // Hier evtl noch um einen Logeintrag ergänzen, falls du von solchen Versuchen was mitbekommen willst Die("Dies ist kein gueltiger Pfad!"); include($loc.".php"); |
Re: Meine PHP-Seite ist unsicher!
... oh sorry jetzt weiss ich was du meinst... da kann ja dann jeder benutzer auf mein gästebuch und gesicherte daten zugreifen... das muss ich schnellstens lösen...
|
Re: Meine PHP-Seite ist unsicher!
Hi!
... oder du musst überprüfen, dass bestimmte Zeichen ('.', '/') nicht im Include-Pfad auftauchen dürfen. Wenn du das sauber machst, ist die Seite gleich um einiges sicherer. Frohe Weihnachten! Mamphil |
Re: Meine PHP-Seite ist unsicher!
hi!
ich hab mich ma hingesetzt und ne eigene möglichkeit aus beiden versionen gemacht, wenns was zu bemängeln oder verbessern gibt, sofort sagen! :wink:
Code:
define("FAIL", "fehler");
$ordner = "data"; $trenner = " ... "; $fileext = ".txt"; $handle = opendir($ordner); while ($file = readdir ($handle)) if(($file != ".") && ($file != "..") && (!is_readable($file))) $possibles[count($possibles)] = ereg_replace($fileext, "", $file); //dateiendung löschen closedir($handle); $possibles = array_merge($possibles, array("hier", "weitere", "menüpunkte", "ohne dateiendung")); if(!isset($loc)) $loc = "home"; if(!in_array($loc, $possibles)) $loc = FAIL; if((isset($load)) && (!in_array($load, $possibles))) $load = FAIL; //... hier noch html code fürs menu usw... $filenamen = "$ordner/$loc$fileext"; if(!file_exists($filenamen)) echo "<H3>Die Seite wurde nicht gefunden. Schade!</H3>"; else { echo "<H2>$loc</H2>\n"; include($filenamen); } //... und wieder html code... noch etwas: wie kann man das verein fachen (is ne beschissene möglichkeit muss ich zugeben...):
Code:
also ich meine, dass bei dem fall, dass $locfail TRUE ist, die $loc-variable (die dann den inhalt fehler hat) kursiv angezeigt wird. ich muss mit meiner möglichkeit 4 mal abfragen ob es nun so ist.Du befindest dich hier: <?php $locfail = ($loc == FAIL); $loadfail = ($load == FAIL); if($locfail) echo "[I]"; echo $trenner,$loc; if($locfail) echo "[/I]"; if(isset($load)){ if($loadfail) echo "[I]"; echo "$trenner$load"; if($loadfail) echo "[/I]"; } ?></P> gibt es keine string-funktion, die das vereinfacht? PLEASE HELP!! |
Re: Meine PHP-Seite ist unsicher!
Hi!
Zitat:
Bitte einfach mal nach den ![]() Mamphil |
Re: Meine PHP-Seite ist unsicher!
@Mamphil: ich hoffe so ist's besser zu lesen... :mrgreen: (siehe oben)
|
Re: Meine PHP-Seite ist unsicher!
lol..da hab ich glück gehabt (hoffe meine seite is jetzt sicher):
![]() |
Re: Meine PHP-Seite ist unsicher!
Hi!
1.) Guck dir mal die Seite ![]() 2.) Interessant ist ![]() ![]() 3.) Guter Code / Schlechter Code: ![]() ![]() 4.) Vereinfachen kann man das ganze, indem du eine If-Konstruktion baust, in der der String mit den [i]-Tags zusammengebaut wird:
Code:
Mamphil
if ($locfail)
$output = '[i]'.$trenner.$loc.'[/i]'; else $output = $trenner.$loc; echo $output; // analog für load... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz