Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]GETowy miniCMS
debian
post 23.12.2008, 13:32:42
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 1
Dołączył: 6.11.2008
Skąd: /etc/passwd

Ostrzeżenie: (0%)
-----


Witam smile.gif
  1. <?php
  2. $dir = 'newsy/';
  3. $more = 'newsy/wiecej/';
  4.  
  5. include('naglowek.php');
  6.  
  7. if (empty($_GET['strona'])) readfile($dir.'index.php');
  8. else
  9. {
  10.  if (is_file($dir.$_GET['strona'].'.php')) readfile($dir.$_GET['strona'].'.php');
  11.  else readfile($dir.'blad.php');
  12. }
  13.  
  14. include('stopka.php');
  15.  
  16. ?>

Ten skrypcik umieszczony w index.php działa tak. w katalogu newsy robimy plik z treścią newsa o nazwie nazwa.php i po wybraniu index.php?strona=nazwa pokazuje nam treść tego newsa między nagłówkiem strony a jego stopką. Jest to wygodne dość biggrin.gif jak i staroświeckie.
Moje pytanie brzmi, co dopisać by po wpisaniu index.php?strona=nazwa&more=nazwa wyświetlił tylko tekst nazwa.php z katalogu newsy/wiecej bo prubowałem coś ale pokazuje i tekst z newsy/nazwa.php a pod spodem newsy/more/nazwa.php


--------------------
Go to the top of the page
+Quote Post
erix
post 23.12.2008, 13:50:24
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jest to wygodne dość jak i staroświeckie.

Dobrze, że jesteś choć samokrytyczny. tongue.gif http://serwer/skrypt/index.php?strona=../../etc/passwd i co?

Cytat
i tekst z newsy/nazwa.php a pod spodem newsy/more/nazwa.php

Dopisz kolejny warunek.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
debian
post 23.12.2008, 14:05:34
Post #3





Grupa: Zarejestrowani
Postów: 122
Pomógł: 1
Dołączył: 6.11.2008
Skąd: /etc/passwd

Ostrzeżenie: (0%)
-----


Cytat
Dobrze, że jesteś choć samokrytyczny. tongue.gif http://serwer/skrypt/index.php?strona=../../etc/passwd i co?


I nic... tongue.gif index.php?strona= w skrypcie przeciez widac ze mozna odczytywac tylko z katalogu newsy/ poza tym nie ma praw do wyświetlenia tego pliku.

Cytat
Dopisz kolejny warunek.

Wiesz biggrin.gif sam bym na to nie wpadł -,-"
A tak serio to pisałem ale pewnie źle bo nie działało poprawnie dlatego proszę o waszą pomoc.


--------------------
Go to the top of the page
+Quote Post
pyro
post 23.12.2008, 14:08:43
Post #4





Grupa: Zarejestrowani
Postów: 2 148
Pomógł: 230
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


Cytat(debian @ 23.12.2008, 14:05:34 ) *
I nic... tongue.gif index.php?strona= w skrypcie przeciez widac ze mozna odczytywac tylko z katalogu



Ślepyś? Według Ciebie ten skrypt pozwala czytać tylko z katalogu "newsy"?

// EDIT

Daj linka do tej stronki to ci chętnie opisze problem.

Ten post edytował pyro 23.12.2008, 14:09:03


--------------------
ET LINGUA EIUS LOQUETUR IUDICIUM
Go to the top of the page
+Quote Post
debian
post 23.12.2008, 14:14:18
Post #5





Grupa: Zarejestrowani
Postów: 122
Pomógł: 1
Dołączył: 6.11.2008
Skąd: /etc/passwd

Ostrzeżenie: (0%)
-----


Cytat(pyro @ 23.12.2008, 14:08:43 ) *
Ślepyś? Według Ciebie ten skrypt pozwala czytać tylko z katalogu "newsy"?

// EDIT

Daj linka do tej stronki to ci chętnie opisze problem.


Prubowałem sam index.php?strona=../../../ bleble /etc/passwd i nie czyta pliku. Nawet jeśli podaje prawidłowe drzewo katalogów.

To jak można to zrobić bezpiecznie? :|


--------------------
Go to the top of the page
+Quote Post
skowron-line
post 23.12.2008, 14:16:14
Post #6





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(debian @ 23.12.2008, 14:14:18 ) *
Prubowałem sam index.php?strona=../../../ bleble /etc/passwd i nie czyta pliku. Nawet jeśli podaje prawidłowe drzewo katalogów.

To jak można to zrobić bezpiecznie? :|

http://www.sjp.pl/pr%F3bowa%B3em
*sorry za OT

Ten post edytował skowron-line 23.12.2008, 14:16:30


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
debian
post 23.12.2008, 14:18:36
Post #7





Grupa: Zarejestrowani
Postów: 122
Pomógł: 1
Dołączył: 6.11.2008
Skąd: /etc/passwd

Ostrzeżenie: (0%)
-----


Cytat(skowron-line @ 23.12.2008, 14:16:14 ) *

Lubisz nabijać posty prawda? ;] Jak nie masz nic szczególnego do powiedzenia to sie nie udzielaj prosze w moim temacie.


--------------------
Go to the top of the page
+Quote Post
_olo_1984
post 23.12.2008, 14:28:17
Post #8





Grupa: Zarejestrowani
Postów: 289
Pomógł: 77
Dołączył: 5.08.2006

Ostrzeżenie: (0%)
-----


np. tak:

stwórz sobie tablicę
  1. <?php
  2. $strony = array('dupa','krzysiek','chyzy');
  3. ?>


sprawdzaj czy to co przesyłasz getem jest w tablicy

  1. <?php
  2. if(in_array($_GET['strona'], $strony))
  3. {
  4.  // jakies tam dodatkowe rzeczy  + na koniec podłączasz strone
  5.  include(DIR.$_GET['strona'].'.php');
  6. }
  7. else
  8. {
  9. // generuje stosowny błąd
  10.  
  11. }
  12. ?>


to tylko pomysł

Ten post edytował _olo_1984 23.12.2008, 14:30:24


--------------------
awake
Go to the top of the page
+Quote Post
WebKing
post 23.12.2008, 14:41:21
Post #9





Grupa: Zarejestrowani
Postów: 219
Pomógł: 16
Dołączył: 16.07.2007

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $pages = array("nazwa", "nazwa_1", "nazwa_2");
  3.  
  4. if(in_array($_GET["page"], $pages)) {
  5.    if (isset($_GET["more"])) {
  6.        include("newsy/more/".$_GET["more"].".php");
  7.    } else {
  8.        include("newsy/".$_GET["page"].".php");
  9.    }
  10. } else {
  11.    echo "Brak podanej strony";
  12. }
  13. ?>

Proszę winksmiley.jpg

Ten post edytował WebKing 23.12.2008, 14:41:56
Go to the top of the page
+Quote Post
debian
post 23.12.2008, 14:55:37
Post #10





Grupa: Zarejestrowani
Postów: 122
Pomógł: 1
Dołączył: 6.11.2008
Skąd: /etc/passwd

Ostrzeżenie: (0%)
-----


Cytat(WebKing @ 23.12.2008, 14:41:21 ) *
  1. <?php
  2. $pages = array(&#092;"nazwa\", \"nazwa_1\", \"nazwa_2\");
  3.  
  4. if(in_array($_GET[&#092;"page\"], $pages)) {
  5.    if (isset($_GET[&#092;"more\"])) {
  6.        include(&#092;"newsy/more/\".$_GET[\"more\"].\".php\");
  7.    } else {
  8.        include(&#092;"newsy/\".$_GET[\"page\"].\".php\");
  9.    }
  10. } else {
  11.    echo &#092;"Brak podanej strony\";
  12. }
  13. ?>

Proszę winksmiley.jpg


Oooo smile.gif Dziękuje Bardzo biggrin.gif o takie coś mi chodziło ^^, Dzięki raz jeszcze biggrin.gif Pozdro


--------------------
Go to the top of the page
+Quote Post
decha-design
post 23.12.2008, 14:56:20
Post #11





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

Ostrzeżenie: (0%)
-----


lub też korzystaj z basename" title="Zobacz w manualu PHP" target="_manual


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 03:34