Speedy
4.06.2006, 19:18:58
Wystarczy wysłać odpowiedni nagłówek i w nim zdefiniować dowolny http referer. Można to zrobić w php lub z użyciem takiego pluginu do firefoxa o nazwie `Live HTTP headers`
sobstel
4.06.2006, 19:57:25
Cytat(mumin.php @ 30.05.2006, 11:33 )

Przyznaję, że niestety nie rozumiem tego wytłumaczenia

nigdy nie mozesz polegac na HTTP_REFERER nawet jak nikt przy nim nie majstruje. ktos moze laczyc sie z twoja strona przez proxy a proxy czasami lubia mieszac z naglowkami HTTP, przez co ten sam uzytkownik moze zwracac np. rozne USER_AGENT, to samo tyczy sie HTTP_REFERER. takze, przegladarka moze wcale tego naglowka nie wysylac i wtedy $_SERVER['HTTP_REFERER'] jest puste nawet, gdy ktos przechodzi z jednej strony na drugą. w ten sposob przez swoje zabezpieczenie ograniczasz dostepnosc aplikacji dla niektorych uzytkownikow. dokladajac fakt, o ktorym wspomnial powyzej Speedy, powoduje to ze HTTP_REFERER raczej nie jest najlepszym rozwiazaniem, nie sadzisz?
Podziele sie z Wami moim pomyslem jak ja zalatwiam prawie wszystko roboty tego typu w swoich projektach.
Jest formularz
<input type='text' name='a3ol5m3in5klnw_name'>
To takie smieszne w nazwie to losowy string - generowany md5 na bazie czasu. Zapisuje sie go w sesji. User wysyla i sie wyciaga z POST wszystkie pola porownujac z tym co jest w sesji zapisane - cos ala token doklejony do nazwy pola. I tyle

Roboty wysylajace spam np. na blogi dzialaja na bazie znajomosci nazw pol formularza oraz adresow - bo tak dziala np. CURL - taki prosty patch rozwala wiekszosc na lopatki

Jesli nie ma sesji tzn ze ktos cos majstruje
Vengeance
21.07.2006, 21:09:53
@NuLL: Skoro sprawdzałeś to OK, ale dla mnie to żaden problem by bot odsyłał dokładnie te same nagłówki jakie otrzymał od serwera (chodzi oczywiście o cookies) a wtedy sesja zostanie wykryta.
mariuszn3
22.07.2006, 12:23:11
NuLL a co z tymi co mają wyłączoną obsługę ciasteczek?
NuLL
26.07.2006, 13:16:24
Cytat(mariuszn3 @ 22.07.2006, 13:23 )

NuLL a co z tymi co mają wyłączoną obsługę ciasteczek?
Statystycznie 1,5% - mam w powazaniu
@Vee - napisalem ze prawie wszystkie - z tego co widze wiekszosc botow nie jest na tyle inteligentna aby to zrobic

W najblizszym czasie bede mial mozliwosc testowania tego piszac duzy system blogowy
Turgon
1.08.2006, 18:26:12
Czy przechowywanie id sesji w ciachu jest bezpieczne ?
Bo piszę własną obsługę sesji i to jest konsultowane z bazą danych...
sobstel
1.08.2006, 19:32:58
Cytat(Turgon @ 1.08.2006, 19:26 )

Czy przechowywanie id sesji w ciachu jest bezpieczne ?
Bo piszę własną obsługę sesji i to jest konsultowane z bazą danych...
jest dość bezpieczne, ale najbezpieczeniejsze jest w połączeniu z SSL (https) - w innym przypadku cookies może być podsłuchane (co w gruncie rzeczy znowu aż takie proste dla wielu nie jest). jednakże uznałbym ten sposób mimo wszystko stosunkowo bezpieczny, jeśli wsparty przez odpowiednie dodatkowe zabezpieczenia jak chociażby wygasania sesji np. po 20-30min czy potwierdzanie ważnych czynności hasłem (jak zmiana maila, usunięcie ważnych danych).
Turgon
2.08.2006, 08:21:50
O to właśnie mi chodziło. Skrypt miałby się w przypadku zmiany danych pytać o hasło i login. Sesja zwykle wygasa u mnie po 30 minutach nieaktywności. Skrypt zbierający śmieci to załatwia.
Ciacho wygasa zawsze po 30 minutach od ostatniej nieaktywności.
Niestety SSLa nie potrzebuje, bo to nie jest jakis skrypt bankowy czy coś, tylko prosty zbiór dzieł różnych ludzi...
Joachim Peters
4.08.2006, 10:43:27
W swoim cms, nie wiem czy zrobić tak:
<?php
{
include ('modules/'.basename($page.'.php')); }
else
{
include ('modules/news.php');
}
?>
czy na switch'ach?
kalu111
20.08.2006, 09:55:10
A jakich powinno sie ustrzegac znakow w zmiennych przekazywanych drogą $_GET , $_POST itd., jeżeli zmienne te będa dalej wykorzystywane w skrypcie. Od razu powiem, ze nie chodzi mi o includowanie plikow, tylko o zwykle parametry, ktore maja wplyw na dalszy przebieg skryptu?
Czy zwykle stripslashes, strip_tags, trim lub funkcje zwiazane z mysql wystarcza?
A czy mój tok myślenia jest dobry? Mam zrobione logowanie, jęsli podane dane zgadzają sie:
<?php
if($bazapass == $zpass)
{
$_SESSION['userid'] = $userid;
$_SESSION['nick'] = $podanylogin;
$_SESSION['level'] = $kto;
}
?>
A pliki includowane przez panel zaczynajuą sie od:
<?php
if(!isset($_SESSION['level']) || $_GET['k'] > $_SESSION['level']) {
echo ' SPIEPRZAJ DZIADU!'; }
?>
gdzie zmienna $_GET['k'] wskazuje katalog z którego ma być include() modułu.
Saddam92
29.11.2006, 13:40:53
a czy moglibyście powiedzieć czy ten skrypt jest bezpieczny??
system includowania stron<?php
....
....
if ($_GET['mode'] == "") {$_GET['mode'] = 'main';}
include "strony/$_GET['mode'".".php";
}else {
echo "Nie znaleziono pliku !!"; }
?>
oraz w pliku includowanym:
<?php
defined ('_ABCDE_F') or
die('Bezpośrednie wywołanie pliku jest zabronione'); /* Reszta pliku */
?>
co o tym myślicie??
Termit_
30.11.2006, 21:36:25
A jak ktoś poda w zmiennej coś typu "../../../../root/jakiswaznyplik"?
Saddam92
30.11.2006, 23:17:28
@termit: to do mnie było

jesli tak to raczej nie widze możliwości..
chyba ze php obsługuje takie nielogiczne skrypty jak sciezka do pliku wygladajac tak:
strony/../../../../root/jakis_wazny_plik i to w dodatku trzeba trafić idealnie żeby taki plik istniał w odpowiednim katalogu... troche trudne i nie logiczne..
co na to spece od php??
Najki
1.12.2006, 10:26:12
Przed chwilą przeczytałem
ten artykuł i nieco się zmieszałem. W jaki więc sposób powinniśmy upload'ować pliki na serwer? Szczególnie grafiki takie jak avatary użytkowników? Przyznaję, że wystraszyłem się o kilka swoich stron.
Szukałem, ale nie znalazłem nic innego na ten temat. Żadne ze znalezionych przeze mnie przykładów nie zawierają żadnych dodatkowych zabezpieczeń. Łatwiej znaleźć przykład kodu omijającego te zabezpieczenia niż faktycznego zabezpieczenia. Ktoś ma jakieś sugestie?
Spytam: czy zabezpiecza mnie fakt, że np. wszystkim przesłanym plikom (niby obrazkom) nadaję rozszerzenie jpg (konwertując wcześniej inne formaty grafik na jpg) ? Teoretycznie powinno mnie to zabezpieczyć, ponieważ serwer nie jest skonfigurowany tak, aby interpretować pliki jpg jako kod php. Ale co z innymi językami, np. Python wspomniany w powyższym artykule?
A jeśli to nie zapewnia mi bezpieczeństwa to czy upload'owanie plików poza document_root wystarczy? Wtedy musiałbym je odczytywać dodatkowym skryptem php pobierającym ich zawartość i wypluwającym ją do przeglądarki.
mariuszn3
1.12.2006, 13:38:15
Nigdy nie powinno się ufać nagłówkom http, nagłówki te wstawia agent, którym się posługuje użytkownik a nie zawsze to musi być przeglądarka, może to być po prostu skrypt napisany przez kogoś, który chce wyciągnąć ważne informacje z naszego serwera.
W powyższym przypadku powinieneś po prostu użyć funkcji getimagesize() ona po zawartości pliku oceni jakiego typu jest plik czyli przy próbie przesłania skryptu php wywali błąd, który oczywiście możesz przechwycić i odrzucić plik.
tumeks
5.12.2006, 19:01:57
Czyli jeśli będę miał np. wstawiony kod:
<?php
if ($_GET['page'] == '')
$_GET['page'] = 'news';
include($_GET['page'].'.php');
} else
echo '<div id="blad">Nie znaleziono pliku.</div>'; ?>
To moja strona będzie bezpieczna ?
Sedziwoj
7.12.2006, 13:50:49
@Najki jest proste rozwiązanie nadanie pliku własnej nazwy.
Ja mam po prostu numerowane pliczki, i każdy jeśli rozpoznam np. image/png to zapisuje {numer}.png a nazwa wysłanego co najwyżej służy do opisu w bazie co jako string nie jest niebezpieczne.
Co dziwne jest funkcja do sprawdzania mime mianowicie mime_content_type ale szukając na jej temat znalazłem tylko pliki magic.mime niestety jakoś nie udało mi się tego użyć. Choć przyznam, że tylko chwile siedziałem nad tym.
Mam nadzieję, że dobrze zrozumiałem naturę problemu.
Saddam92
8.12.2006, 21:42:34
no dobrze.. tylko ze tutaj jest sprawdzany typ pliku.. a jak by do tego dodac jeszcze sprawdzanie rozszerzenia przesyłanego pliku
Sedziwoj
9.12.2006, 12:08:30
bardziej wiarygodną rzeczą jest mime, bo plik image/jpeg moze mieć rozszerzenie jpg jpeg jpe i wiele innch dziwnych, czy po prostu niepoprawnych, zdarzało mi się że miałem plik o rozszerzeniu jpeg a program graficzny poinformował mnie że to jest gif i zmienił rozszerzenie.
Ogólnie lepiej oprzeć na mime a nazwę i rozszerzenie tworzyć samemu, bo oprócz rozszerzenia mogą być "błędne" nazwy plików.
Co do podanej przezemnie funkcji, to chyba po prostu zrobię ją sam (dość proste) tylko muszę znaleźć opis większej liczby formatów. Ale to będzie dość proste. (tak mi się wydaje)
Ale ogólnie po prostu nie możemy polegać na tym co mamy przesłane czy to mime czy to rozszerzenie.
Mimo wszystko jestem za tym aby plikom nadawać własne nazwy.
cadavre
9.12.2006, 13:50:07
Sedziwoj
10.12.2006, 18:41:56
No to ten problem da się rozwiązać

Wystarczy wykorzystać:
0 string GIF image/gif
0 beshort 0xffd8 image/jpeg
0 string \x89PNG\x0D\x0A\x1A\x0A\x00\x00\x00\x0DIHDR image/png
lub przy obrazkach można jak
cadavre napisał wykorzystać getimagesize, a dokładniej coś co jest w manualu
http://pl.php.net/manual/pl/function.getimagesize.php" title="Zobacz w manualu php" target="_manualAle też można rozpoznać inne typy:
0 string BZh application/x-bzip2
itd.
Już sobie odpowiedni kod wyklepałem, więc na przyszłość będę miał, no i to zagadnienie już mam troszkę rozpracowane.
mariuszn3
10.12.2006, 18:49:29
Nie wynajdujcie koła na nowo. To wszystko już zostało dawno opracowane przez programistów php.
Jeśli chcecie wykryć typ pliku obrazu wtedy w zupełności wystarcza getimagesize()
Natomiast jeśli jakiegokolwiek pliku to skorzystajcie z rozszerzenia Fileinfo i funkcji
finfo_file()
Sedziwoj
10.12.2006, 20:00:12
No tak jak ma się sklerozę... to trzeba się narobić

Ale głupio się czuję, przecież 'wiedziałem' że ta funkcja jest :/
No nic ale informacje i tak nie poszły na marne bo jeśli się pracuje u siebie na windowsie to trzeba mieć plik z mime (chyba, że znów popisuję się inteligencją czy raczej pamięcią)
starach
31.01.2007, 13:44:38
Zabezpieczanie tablicy $_GET ( Żywcem wyjęte z maincore.php w php-Fusion )
<?php
public function check_get()
{
foreach ($_GET as $check_url) {
if ((eregi("<[^>]*script*"?
[^
>]*>", $check_url)) || (eregi("<[^
>]*object
*"?[^>]*>", $check_url)) || (eregi("<[^>]*iframe*"?
[^
>]*>", $check_url)) || (eregi("<[^
>]*applet
*"?[^>]*>", $check_url)) || (eregi("<[^>]*meta*"?
[^
>]*>", $check_url)) || (eregi("<[^
>]*style
*"?[^>]*>", $check_url)) || (eregi("<[^>]*form*"?
[^
>]*>", $check_url)) || (eregi("([^
>]*"?[^)]*)", $check_url)) || (eregi(""", $check_url))) {
return false;
} else {
return true;
}
}
?>
Nie rozumiem tylko co robi ta linijka:
Kod
eregi("\([^>]*\"?[^)]*\)", $check_url)
Z Wyrażeń regularnych to ja jestem cienki
Sedziwoj
2.02.2007, 03:30:17
Tak mnie zastanawia co się stanie jeśli $_GET nie istnieje lub nie jest tablicą... (nie chce mi się teraz testować).
A jeszcze do podanego na drugiej stronie skryptu z flock, jest błędny, ponieważ ta funkcja zwraca true jeśli się jej uda a false jeśli nie, więc może wyjść, że plik jest używany zwróci false ale że nie sprawdzamy co zwraca skrypt leci dalej i robią się kłopoty.
Trzeba więc sprawdzać co zwraca, gdzieś zamieściłem jedną propozycję ale była na tyle prosta (jak i mogąca zawiesić skrypt) że jej nie podam.
insenic
25.02.2007, 16:21:27
Czy zabezpieczenie katalogu przez .htaccess jest 100% bezpieczne? Chciałbym trzymać konfigurację (między innymi hasło do mysql) w danym katalogu w plikach *.ini. Wiem, że istnieją inne metody zabezpieczania takich danych, ale czy .htaccess jest skuteczna?
sobstel
26.02.2007, 08:51:32
Cytat(insenic @ 25.02.2007, 16:21:27 )

Czy zabezpieczenie katalogu przez .htaccess jest 100% bezpieczne? Chciałbym trzymać konfigurację (między innymi hasło do mysql) w danym katalogu w plikach *.ini. Wiem, że istnieją inne metody zabezpieczania takich danych, ale czy .htaccess jest skuteczna?
nie ma metod całkowicie bezpiecznych, jednak ta jest jedną z lepszych na osiągnięcie tego co chcesz.
Ivellios
2.03.2007, 23:03:09
Witam, chciałbym się was zapytać, czy przedstawiony przeze mnie poniżej kod ma coś wspólnego z bezpieczeństwem

<?php
$sql = "SELECT * FROM nuke_pages WHERE pid = '$id'";
{
?>
<table><tr><td class="navpic" align="center"><font class="block-title"><strong>
<?php echo $row['title']; ?></strong></font></td></tr>
<tr><td class="row1" align="justify"><font class="content">
<?php echo $row['page_header']; ?><BR><BR>
<?php echo $row['text']; ?><BR><BR>
<?php echo $row['page_footer']; ?></font><BR><BR></td></tr></table><br>
<?
}
?>
Korzystam obecnie z PHP Nuke i postanowiłem stworzyć własnego CMS'a do obsługi mojej strony www.paranormalium.pl Budując stronę główną nieopartą na tej dziurawej krowie, mając przy tym nikłe pojęcie o php, musiałem niestety zrobić małą, że tak to ujmę, prowizorkę, czyli same include i inne proste rzeczy...
Potrzebuję tylko stworzyć jakiś w miarę prosty i bezpieczny zarazem skrypt, który wyświetlałby artykuły/linki/opisy książek i inne dane zapisane w bazie. Muszę się za to zabrać szybko bo się ostatnio na mnie uwzięła grupa hakerów niszczących strony o tematyce paranaukowej
Sedziwoj
4.03.2007, 02:39:44
Ivellios przeczytaj to co już jest, tam znajdziesz odpowiedź.
Musisz wiedzieć o 'grubszych' dziurach jakie się zdarzają sam, bo tak każdy skrypt byś musiał komuś podsyłać aby sprawdzić.
Co do tego co podałeś, to jeśli pid jest polem typu liczbowego, to powinieneś sprawdzić czy $_GET['id'] jest liczbą, jak jest to dobrze jak nie to ignorujesz. A addslash w takim wypadku jest zbędny, bo jak jest liczbą to nie może mieć innych znaków.
Ivellios
4.03.2007, 07:54:58
Co do tego addslasha to zmieniłem go na mysql_escape_string. A jak będę miał wolną chwilkę to przejrzę cały temacik i pomyślę, co by jeszcze "ubezpiecznić"
upaupa
27.03.2007, 14:11:39
Przeczytałem cały topic - filtrowanie, if fileexist - tylko po co to? Mam taki kod i nie ma bata żeby ktoś tu coś innego includował:
Kod
<a href="index.php?strona=glowna">GLOWNA</a><br>
<a href="index.php?strona=pobieralnia">POBIERALNIA</a><br>
<a href="index.php?strona=omnie">O MNIE</a><br>
<?php
$page=$_GET['strona'];
if(($strona == "") || ($strona == "glowna"))
{include("glowna/glowna.php");}
else
if($strona == "pobieralnia")
{include("pobieralnia/pobieralnia.php");}
else
if($strona == "omnie")
{include("omnie/omnie.php");}
else // to ma zabezpieczyc
{include("glowna/glowna.php");} // nasza strone
?>
Sedziwoj
27.03.2007, 16:00:29
upaupa widocznie nie czytałeś wszystkiego... bo już lepiej użyć switch niż taką konstrukcję, a dlaczego mimo wszystko tak nie jest najlepiej, masz napisane wcześniejszych postach.
upaupa
27.03.2007, 17:09:08
a co za różnica czy switch czy else if? - żadna oprócz no powiedzmy przejrzystości kodu. Post przeanalizowałem dokładnie i dalej sądzę że w tym kodzie co podałem nic innego nie da się includować
Sedziwoj
27.03.2007, 18:27:51
Przecież przejrzystość i łatwość rozbudowy kodu jest ważna.
A czy ja twierdziłem że można się włamać? Chodziło mi o sens budowy sprawdzania zamiast konstrukcji zamkniętych.
dantekir
29.04.2007, 16:47:22
Witam,
Postanowiłem popracować troche nad bezpieczeństwem pewnej stronki...

Przeczytałem ostatnio wiec że lepiej jest w adresie url nie podawać nazwy plikow w postaci np. jakastrona.pl/
index.php bezpieczniej jest używać /index.html a to ze względu na fakt iż atakujący nie zna od razu odpowiedzi na pytanie: jaki język skryptowy został użyty do stworzenia strony?
A wiec...
Przypuśćmy że mam taki adres:
www.jakasstrona.pl/podstrona.php?zmienna1=wartosc1&zmienna2=wartosc2Sladami poprawy bezpieczenstwa chcialbym ten adres zamienic np. na:
www.jakasstrona.pl/podstrona_wartosc1_wartosc2_.htmlz tego adresu mogłbym sobie wyciagnac wartosci odpowiednich zmiennych.
Zauwazylem tez ze serwis allegro stosuje taki linkowanie do aukcji, a wiec jest to mozliwe.
Zastanawiam sie w jaki sposob dac do zrozumienia mojej stronie aby po wpisaniu tego "bezpiecznego" adresu nie wyswietlala mi sie strona bledu (404)...
Drugie pytanie dotyczy tego gdzie ustawic mozliwosc wykonywania skryptow php w plikach .html?
Za wskazowki bardzo dziękuję i pozdrawiam.
bełdzio
29.04.2007, 17:07:31
ad1. google + mod_rewrite
ad2. w konfigu php ew. w .htaccess AddType application/x-httpd-php .html
a od siebie dodam:
http://www.beldzio.com/ mam nadzieję, że da się tam znaleźć coś ciekawego ;-)
.radex
4.05.2007, 17:38:46
O jednym zapomnieliście - Z includowaniem plików przesadziliście całkowicie! PHP jest językiem działającym po stronie serwera więc jakie jest niebezpieczeństwo?! Można zincludować plik jako przetworzony już, ale napewno nie będzie mógł dostać się do serwera czy innych takich:P
Kicok
4.05.2007, 17:49:27
1.
<?php
$id = $_GET['id'];
include('/strony/' . $id . '.php');
?>
Po kliknięciu na link
http://server.com/index.php?id=../index.php strona się zapętli (będzie wczytywała samą siebie) a zużycie procesora skoczy do 100%. Może nawet uda się w ten sposób zwiesić system lub wywalić serwer www - nie wiem, nie znam się, w każdym bądź razie jest to skutek niepożądany.
2. Kompletna masakra
<?php
$id = $_GET['id'];
include($id);
?>
Po kliknięciu na link
http://server.com/index.php?id=http://moj_..._skrypt_php.txt można nieźle namieszać na serwerze.
No chyba że chodzi ci o "ataki" typu umieszczenie na swoim serwerze:
<?php
include('http://jakas_stronka/config.php');
?>
to faktycznie w ten sposób zaatakować/podglądnąć kod źródłowy się nie da .
bełdzio
5.05.2007, 00:12:38
@Kicok pkt1 == pkt2

to że dodawane jest automatycznie rozszerzenie nie oznacza, że nie możesz się go pozbyć

@radex_p nie chodzi o samo includowanie, ale o sposób jaki się to robi
.radex
6.05.2007, 15:52:45
Cytat(Kicok @ 4.05.2007, 16:49:27 )

1.
<?php
$id = $_GET['id'];
include('/strony/' . $id . '.php');
?>
Po kliknięciu na link
http://server.com/index.php?id=../index.php strona się zapętli (będzie wczytywała samą siebie) a zużycie procesora skoczy do 100%. Może nawet uda się w ten sposób zwiesić system lub wywalić serwer www - nie wiem, nie znam się, w każdym bądź razie jest to skutek niepożądany.
Przy odpowiednich zabezpieczeniach serwer sam się uchroni:P I nie chodzi o same zabezpieczenia skryptu, ale niektóre serwery logują ip, i przy zbyt dużych "wejściach" serwer automatycznie blokuje skrypt/ip. No ale są bardziej wyrafinowane sposoby na spowodowanie ataku DoS (albo DDoS)
peen
31.05.2007, 02:52:48
hmm... trochę tu śmietnik... zgubiłem się gdzieś na 3-4 stronie

ale właściwie chodzi mi tylko o jedno... test skryptu logującego... jego oczywiście nie podam ale jeśli byłby ktoś tak miły to proszę o jego przełamanie(na pewno się da ... tak myślę

)
poza logowaniem proszę o znalezienie błędów... wszystkich możliwych jakby ktoś miał trochę czasu i chęci

adres
www.peen.yoyo.plPS czuje się jakbym popełniał samobójstwo

(modli sie: oby nie złamał tego jakiś zwykły PHP coder

)
----------------
jeśli pobieram "dzial" metodą get i wewnątrz skryptu wstawiam prefix "./" oraz sufix w postaci rozszerzenia...(którego raczej staram się nie zdradzić) to w jakim stopniu zabezpieczam skrypt przed niepowołanymi danymi/skryptami?(wiem że o tym było trochę ale się pogubiłem trochę bardziej :/)
co mi grozi jeśli nie ograniczam długości loginu i hasła w skrypcie do logowania? jeśli nie ograniczam też możliwości używania tagów html itp itd....
(konkretny przykład wpisanych danych... najlepiej od razu sprawdzony w skrypcie na stronie wyżej:P)
jak bezpieczne są zmienne przechowywane w $_SESSION? czy jeśli przechowuje w nich login i hasło(forma md5) to jest to w miarę dobre rozwiązanie czy lepiej na prostych stronach unikać przechowywania loginu i hasła w ogóle(wprowadzanie loginu i hasła tylko na potrzeby konkretnego skryptu np. dodającego wpis na stronkę)?
czy coś jeszcze chcę wiedzieć.... -myśli--myśli--myśli... chyba na razie nie
bełdzio
31.05.2007, 18:53:07
boo ;-) ad1. Null byte attack
ad2. nic jeśli później nie wyświetlasz danych przekazanych przez usera
ad3. średnio bezpieczne

zależy czy używasz tylko "gołej" tablicy $_SESSION i session_start czy też innych ficzerów ;-)
ad boo. hmm... spróbuj zrobić tak żeby nie wywaliło braku strony

bo właściwie to co zrobiłeś to nie błąd tylko taka jest nazwa strony której szukałeś

:P(nadaje sie do zabezpieczeń w microsofcie

:P)
ad1. hmmm jakoś się poprawi... ekhm a właściwie jak wygląda ten typ ataku

(to jest coś z ../../../ itd?

)
hmm
ad3. czy $_SESSION jest tak bezpieczne jak komputer i połączenie między klientem a serwerem? jeśli użyje https ... to jest jeden z tych ficzerow? domyślam się że w tablicy nie powinienem goło trzymać nazw pól "login" "pass" tylko jakieś identyfikatory(może zaszyfrowane

) trudne do odgadnięcia a każda wartość szyfrowana?

:P
PS hmm sorki za zabezpieczenia ogólne w dziale php

EDIT:
poprawiam poprawiam... usuwam podpuchę z pokazywaniem błędnego działu... robie listę dozwolonych działów... ale z tymi ficzerami to jeszcze będę musiał troche popracować bo w manualu PHP niewiele jest o sesjach...(albo nie umiem szukać) więc google się odwiedzi
bełdzio
1.06.2007, 14:14:53
ad ad boo, to jest błąd i tyle, co za problem przejechac stringa np strip_tags?
ad ad 1/ %00 kończy stringa czyli katalog/plik.php%00.html = katalog/plik.php
ad ad3. ficzery = session.use_only_cookies + session_regenerate_id + session_save_path etc ;-)
ad ad ad 1

wpisuje nazwę innego pliku znajdującego się w katalogu... + %00
teoretycznie wg tego co mówisz powinno mi się wyświetlić a wyświetlić a wyświetla się znany ci już błąd
"Strony "(ukryta nazwa pliku)
\0" nie znaleziono."
hmm... jestem po prostu głupi i nie potrafię zrobić włamu na własną stronę

ad ad ad boo poprawione... ale pewnie dalej gdzieś jest dziura

ad ad ad 3 ehh to głębszy temat... z czasem się dopracuje

PS wiesz po prostu przeczytam sobie troche na twojej stronce

i na innych temu podobnych
Czytam i czytam i już dobre pół godziny czytam i nie wydaje mi się żeby dało się coś złego zrobić z takim skryptem:
<?php
if($plik != $_GET[plik])
else
{
include($plik.'php')
else
include("strona_glowna.php")
}
?>
Nie można includować pliku z innego katalogu z innego serwera czy też z dysku twardego...
Wiem dobrze, że includowanie któregokolwiek pliku z tego katalogu w którym znajduje się index nic złego nie zdziała...
Więc, pod jakim względem jest ten skrypt niebezpieczny bo nie mogę się doczytać
Sedziwoj
5.09.2007, 22:41:49
po pierwsze ten skrypt nie działa
po drugie zamiast file_exists() a is_file().
Po trzecie, po prostu bym dozwolił tylko a-z i nie patyczkował.
A właśnie zdałem sobie sprawę, że u mnie takie coś już nie wystąpi <lol> Ech to OOP, jednak ma jakieś plusy
Cytat(Sedziwoj @ 5.09.2007, 23:41:49 )

po pierwsze ten skrypt nie działa
Faktycznie zgubiłem dwa ";" i nie domknąłem jednego nawiasu. Powinno być tak:
<?php
if($plik != $_GET[plik])
else
{
include($plik.'php');
else
include("strona_glowna.php");
}
?>
Cytat(Sedziwoj @ 5.09.2007, 23:41:49 )

po drugie zamiast file_exists() a is_file().
Dzięki przyda się :]
Cytat(Sedziwoj @ 5.09.2007, 23:41:49 )

Po trzecie, po prostu bym dozwolił tylko a-z i nie patyczkował.
Też dobre rozwiązanie :]
Więc czy da się zrobić jakiś włam na aplikację opartą o taką funkcję (basename czy też dozwolenie znaków "a-z" + może "_" i "-") ?
Chyba prawdopodobnie pewnie raczej zapewne na pewno nie
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.