Skocz do zawartości
Matrix_

Podwójny $_GET na stronie

Rekomendowane odpowiedzi

Witam,

ostatnio pracuję nad stroną internetową z systemem newsów (łączenie z msql) ale nie o to chodzi.

 

Szukając w necie prostej galerii trafiłem na MiniGalNano.

Na stronie, podstrony ładują się przez :

GML
<?php

// zmienna $go przekazana metoda GET

$go = $_GET['go'];

 

// sprawdzam czy zmienna $go nie jest pusta

if(!empty($go)) {

// sprawdzam czy plik o danej nazwie istnieje

if(is_file("podstrony/$go.html")) include "podstrony/$go.html";

// jezeli plik nie istnieje wyswietla się komunikat

else echo "<br />Nie ma takiej strony :-(";

}

// jezeli zmienna $go jest pusta wyswietla się strona glowna

else include "podstrony/strona.html";

 

?></div>

W tym momencie adresy url wyglądają tak: index.php?go=4

 

w załączonej podstronie 4 mam wrzuconą tą galerię (według opisu "How to Include MiniGalNano") co wygląda tak:

GML
<?php

// MiniGal Nano integration START

$path_to_minigalnano = "MiniGalNano/"; // <- Enter relative path to MiniGal Nano here (eg. "subfolder/minigalnano/") - END WITH /

// DO NOT EDIT BELOW THIS LINE!

define("GALLERY_ROOT", $path_to_minigalnano);

require(GALLERY_ROOT . "index.php");

// MiniGal Nano integration END

?>

 

Niby galeria sie ładuje, ale w momencie klikania na obrazki i foldery przenosi mnie do:

 

 

Z tego co czytałem żeby osiągnąć prawidłowe funkcjonowanie MiniGalNano powinien tworzyć linki: index.php?go=4&dir=Nowy%20katalog.

Niestety wszystkie moje próby edycji linków wewnątrz galerii nic nie dawały, ktoś mógłby pomóc ?

 

Ten sam problem mam przy edycji,usuwaniu newsów łącząc się z bazą danych i wrzucanie do linku index.php?id=2 (gdzie id to numer newsa, ale potrzebny url to : admin.php?go=news_edit&id=25

 

[edit]

edycja jakoś mi się udało dodając jeszcze jedną zmienną do urla:

GML
echo $output['subject'].' ? <a href="?go='.$go.'&id='.$output['id'].'">Edytuj</a><br />';

 

niestety przy usuwaniu nie wiem który kod zmienić:

GML
if (confirm("Are you sure you want to delete this news item?"))

this.location.href = "?id="+id;

czy

GML
echo $output['subject'].' ? <a href="#" onclick="check('.$output['id'].'); return false;">Delete</a><br />';

 

w galerii jest trudniej bo tam jest po kilkanaście odnośników, chyba ze jakoś z zewnątrz się da zmienić

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Matko boska, tak strasznie dziurawego kodu dawno nie widziałem. Jeśli dobrze patrzę, można dowolny plik na serwerze sobie includować... w ogóle nie filtrujesz GETa, którego user może dowolnie zmodyfikować... nawet nie chce się szukać błędu, skoro od pierwszej linijki jest ich pełno.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Matko boska, tak strasznie dziurawego kodu dawno nie widziałem. Jeśli dobrze patrzę, można dowolny plik na serwerze sobie includować... w ogóle nie filtrujesz GETa, którego user może dowolnie zmodyfikować... nawet nie chce się szukać błędu, skoro od pierwszej linijki jest ich pełno.

Nie każdy musi od razu pisać czysty kod, z zablokowanymi wszystkimi możliwościami zmiany.

Będąc laikiem w php i dopiero co zaczęło mi działać małe co nie co, nie musze robić strony jak na sprzedaż.

Nie trzymam żadnych danych. Mógłbyś chociaż jakieś przykłady np. strony internetowe, żebym mógł zobaczyć od czego zacząć filtrację GETa.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Poczytaj o SQL Injection oraz XSS i będziesz wiedział :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×