![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.01.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
To mój dotychczasowy kod aby adresik byl z ? i z ID=:
[php:1:d7353f0d9d]<?php if ($_GET['ID'] =="") include ("strona_glowna.php"); // to dla strony bez id else include ($_GET['ID'].".php"); // to dla pozostalych ?>[/php:1:d7353f0d9d] Dowiedziałem się od nikogo (nobody) że można do id dodać adres z jakimś skryptem z rozszerzeniem php i w zaleznie co o za skrypt moze mi rozwalic stronke. Skrypt taki co ,,zamyka to dziure'' to: [php:1:d7353f0d9d]<?php if(!file_exists("./".$_REQUEST['dzial'].".php")){ include('./glowna.php'); } else{ include("./".$_REQUEST['dzial'].".php"); } ?> [/php:1:d7353f0d9d] Czy ktoś mógłby mi pomóc wyjąsnić jakie tu są znaczniki albo najlepiej przerobić tak, aby w adresie po ID= nazwie pliku było rozszerzenie czyli nie zeby skrypt sam je dodawal niewidocznie bo chce zaloczyc tez inne pliki, aby domyslnie ladowala sie strona main.php a inne strony zeby adres wygladal mniejwiecej tak http://krzychur.piwko.pl/index.php?ID=author.php a jezeli probojemy dac tam jakiegos niewiadomego linka po ID= albo po prostu gdy dana strona nie istnieje aby ladowal sie plik index.php?ID=error.php Z góry dzieki! |
|
|
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Mozesz zrobic cos takiego:
[php:1:a7204ba9e3]<?php /* lista dozwolonych stron */ $strony = array("newsy.php", "costam.php", "costam2.php"); /* ustawiamy strone domyslną, kiedy ID nie jest podane */ if (empty($_GET['id'])) $_GET['id'] = $strony[0]; /* jesli podane ID jest jedna z dozwolonych wartosci to includujemy ta strone */ if (in_array($_GET['id'],$strony)) { include ($_GET['id']); } else /* w przeciwnym wypadku pokazujemy błąd */ { include ('error.php'); } ?> [/php:1:a7204ba9e3] |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.01.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
a nie dalo by sie tego zrobic tak bez $strony poniewaz troche by wazyl ten dokument jakbym wypisal wszystkie strony...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 61 Pomógł: 0 Dołączył: 16.08.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Można też tak (chyba):
[php:1:2e23a98443]<?php $go=$HTTP_GET_VARS['go']; if (file_exists("inc/".$go.".inc")) include("inc/".$go.".inc"); else echo("nic nie ma takiego"); ?>[/php:1:2e23a98443] ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.01.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Dobra mamy ten kod ale jak zrobic aby byl on taki jak napisalem w 1 poscie nie wpisujac wszystkich stron z serwisu...
---------zmieniony----------- [php]<?php $go=$HTTP_GET_VARS['go']; if (file_exists("inc/".$go.".inc")) include("inc/".$go.".inc"); else echo("nic nie ma takiego"); ?> [/php Czy tutaj po prostu zamiast ID jest go i tam w if (file_exist... to folder inc i rozszerzenie inc?? czyli po prostu zmienie tam dla siebie na .$ID. i w include dam .$go. a w elsce dam include("index.php?ID=error.php"); |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 0 Dołączył: 9.07.2003 Skąd: Lublin city Ostrzeżenie: (0%) ![]() ![]() |
[php:1:16ff90884d]<?php
# definiowanie katalogu, z ktorego beda includowane pliki define("INC_DIR", "."); # (php|inc|txt) z ponizszej linijki sprawdza czy plik ma takie wlasnie rozszerzenia, ogranicza to zakres includowanie plikow # sprawdzana jest nazwa pliku - moze sie skladac z liter a-z A-Z cyfr 0-9 . - _ if(file_exists(INC_DIR."/".$_GET['ID'])&&ereg("^[a-zA-Z0-9.-_]+.(php|inc|txt)$", $_GET['ID'])){ include(INC_DIR."/".$_GET['ID']); }else{ # wybierz sobie ktory sposob wyswietlania bledow Ci odpowiada i usun z tej linijki znak # # print "Nie ma takiego pliku lub nie masz uprawnien do otwierania plikow o takim rozszerzeniu!"; include("error.php"); # header("Location: error.php"); } ?>[/php:1:16ff90884d] |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.01.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
zaraz spawde czy dziala a nobody czasem nei masz tlena lub gg?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
---zmieniony------ a nie dalo by sie zamist ustawiac nazwy plikow aby nie dalo sie wpisac tam http po id?? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 0 Dołączył: 9.07.2003 Skąd: Lublin city Ostrzeżenie: (0%) ![]() ![]() |
Wpisanie http://costam nic nie da bo:
- pliki sa includowane z bierzacego katalogu: ./nazwa_pliku - nazwy plikow musza sie skladac z liter duzych, malych, cyfr i tych paru znakow wiec jak ktos nawet wpisze ID=folder/index.php to skrypt wywali blad. Includowac mozesz z katalogu, ktory zdefiniowales pliki o ustalonych rozszerzeniach. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.01.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Dzieki nobody wprawdzie sam na to wpadlem bo wyslalem tam juz ten skrypt. Pomyliles sie raz bo tam gdzie bylo # print na koncu niepowinno byc srednika ale trudno naprawilem 3x pomogl # dobrze macie ze mna... sprawdzilem wyszstko juz dziala. jeszcze raz dzieki!
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 23:01 |