Ako includnut v stranke v tvare ?id=stranka ? – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako includnut v stranke v tvare ?id=stranka ? – PHP – Fórum – Programujte.comAko includnut v stranke v tvare ?id=stranka ? – PHP – Fórum – Programujte.com

 

Tocimanko0
Grafoman
15. 10. 2007   #1
-
0
-

Ahoj!
Potrebujem vyriesit jeden problem. Mam stranku, ktora sa zklada z <div> : header, menu, content.
V menu mam odkazy v tvare ?id=stranka a potrebujem aby sa mi po kliknuti na takyto odkaz zobrazila stranka.php v <div> content.
Skusal som to dajako takto:

include $_GET['id'].".php";


Ale dozvedel som sa, ze takto sa da velmi jednoducho aplikovat PHP Injekcia (myslim ze od survika (?) ). Neda sa to nejako jednoducho a pritom bezpecne? Dakujem za navrhy a tipy :)

Nahlásit jako SPAM
IP: ...–
don_Dominique0
Super člen
15. 10. 2007   #2
-
0
-

To Tocimanko: Já to řešim takhle

if(isset($_GET['inc'])){

$v=@include "inc/".$_GET['inc'].".php";
if(!$v){
echo "Žzádná položka tohoto jména nebyla nalezena !!!";
}
}else{
$v=@include "inc/news.php";
if(!$v){
echo "Žzádná položka tohoto jména nebyla nalezena !!!";
}
}


Neni to asi moc elegantní řešení ale funguje to :D

Nahlásit jako SPAM
IP: ...–
serion
~ Anonymní uživatel
1 příspěvek
15. 10. 2007   #3
-
0
-



if(isset($_GET["id"])) {
if(is_file("./".$_GET["id"].".php")) {
include ""./".$_GET["id"].".php";
}
else {
include "./notfound.php";
}
}


Môj spôsob, v podstate podobný s don_Dominiquovym.

Nahlásit jako SPAM
IP: ...–
J'ann Baill
~ Anonymní uživatel
9 příspěvků
15. 10. 2007   #4
-
0
-

Tocimanko: já používám tenhle skript: (neručím za to, že je úplně bezpečný O:-) )



<?php
$uvodni = "uvod.php"; // cesta k úvodní stránce
$err404 = "inc/err404.php"; // cesta ke stránce, která se načte, pokud požadovaná stránka neexistuje

if(isset($_GET['id'])) {
$page = $_GET['id'];
if(file_exists($id.".php")) { //pokud existuje požadovaný soubor s příponou .php načte se
require $page.".php";

} elseif (file_exists($id.".html")) { //pokud existuje požadovaný soubor s příponou .html načte se (a pokud neexistuje požadovaný php soubor)
require $id.".html";

} else { // pokud daný soubor nejde nalézt, načte se stránka s chybovým hlášením
require $err404;

} } else { // když se žádný soubor nenačítá, načte se úvodní stránka
require $uvodni;

}
?>

Nahlásit jako SPAM
IP: ...–
insider0
Věrný člen
15. 10. 2007   #5
-
0
-

J'ann Baill: tady si nejsem jisty, jestli to plni spravnou funkci, kdyz ti tam hodim http://www.injekce.cz/show, tak ty si v tom skriptu k tomu doplnis .php a zkontrolujes, jeslti to existuje(fakt si nejsem jisty, jeslti file_exist kontrolovat vzdalene soubory, ale jestli tomu tak je, tak se v podstate nicim nebranis ...)

moje reseni:

$stranky = array("novinky","uvod","kontakt"); // a dalsi

if(in_array($_GET['id'],$stranky)) // tady sou mozna naopak parametry u in_array(), radeji si prekontroluj podle manualu
require("cestaKSouborum/".$_GET['id'].".php");
else
echo "injekci si zkousej jinde!";


to pole bude treba v hlavicce, co se bude vsude includovat, takze staci pridat do menu, vytvorit soubor a pripsat do pole ...

Nahlásit jako SPAM
IP: ...–
I don't want to see you go,[br] The sky is over[br] Even though we can't afford[br] The sky is over,[br] The sky is over us.[br][br] CIVILIZATION IS OVER
J'ann Baill
~ Anonymní uživatel
9 příspěvků
16. 10. 2007   #6
-
0
-

insider: omlouvám se, pokud teď řeknu blbost, ale kdyby to byl vzdálený soubor, tak ho require nemůže načíst, ne?

Nahlásit jako SPAM
IP: ...–
Prog.0
Věrný člen
17. 10. 2007   #7
-
0
-
Nahlásit jako SPAM
IP: ...–
Prog.
J'ann Baill
~ Anonymní uživatel
9 příspěvků
17. 10. 2007   #8
-
0
-

Prog.: aha :).

Nahlásit jako SPAM
IP: ...–
survik1
~ Moderátor
0
Posthunter
19. 10. 2007   #9
-
0
-

Taky přihodím něco do mísy. Jelikož strukturuju své soubory např. do include/soubory/etc a další mám zase jinde, přeposílat proměnnou stylem page=/include/soubory (...) řeším to trošku jinak.



$p = $_GET['page']
switch($p)
{
case 'uvod': include "index.php"; break;
case 'posta': include "include/zabezpecene/posta.php"; break;
default: include "error/no_page_found.php"; break;
}

Nahlásit jako SPAM
IP: ...–
Život je jen hra, která se nedá vyhrát.
survik1
~ Moderátor
0
Posthunter
19. 10. 2007   #10
-
0
-

jinak, funkce file_exists nedokáže kontrolovat vzdálené soubory.

Nahlásit jako SPAM
IP: ...–
Život je jen hra, která se nedá vyhrát.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 14 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý