Robert Nodzewski

Robert Nodzewski Tworzenie serwisów
www oraz paneli do
zarządzania/raporto.
..

Temat: exit(), die(), a może header()?

Cudna dyskusja. Pominę już kwestię autora, bo nie o tym mowa, choć i autor sam nie raz zbaczał z dyskusji by zbanować parę osób a parę innych banem nastraszyć...

Moim zdaniem dyskusja powinna się zakończyć po tych słowach:
Dariusz Licznerski:
Odnośnie die() i exit(), to można się zastanowić czy pisać tak:
die("to jest komunikat");


czy też tak:
exit("to jest komunikat");

No faktycznie, jest nad czym się zastanawiać. To tak samo jakby się zastanawiać nad tym czy miś nosił mysz czy może mysz była noszona przez misia ;)
Adam Pawliczek

Adam Pawliczek Usability expert, UX
designer,
Interaction
specialist

Temat: exit(), die(), a może header()?

Aleksander Wons:
Dariusz Licznerski:
Ma to swoje uzasadnienie.
Na przykład jakie? Bo może ja tu czegoś nie rozumiem, ale po co wyświetlać takie coś jak po prostu strona nie istnieje? Ma to na celu...?
Też jestem ciekaw uzasadnienia.
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: exit(), die(), a może header()?

Adam Pawliczek:
Też jestem ciekaw uzasadnienia.

robie wtyczki do wordpressa. zdarzylo mi sie, ze klient zglosil mi ze z wtyczka jest cos nie tak bo otworzyl edytorem plik index.php (caly kod jest trzymany w pliku o innej nazwie a index.php zostawiamm by wlasnie nikt sie nie rozgladal przez http po katalogu z wtyczką) i plik byl pusty. gdybym zostawil komentarz w <?php ?> z wyjasnieniem rozwiazaloby to jakis problem. mikroskopijny ale zawsze :)

konto usunięte

Temat: exit(), die(), a może header()?

Konrad Karpieszuk:
Adam Pawliczek:
Też jestem ciekaw uzasadnienia.

robie wtyczki do wordpressa. zdarzylo mi sie, ze klient zglosil mi ze z wtyczka jest cos nie tak bo otworzyl edytorem plik index.php (caly kod jest trzymany w pliku o innej nazwie a index.php zostawiamm by wlasnie nikt sie nie rozgladal przez http po katalogu z wtyczką) i plik byl pusty. gdybym zostawil komentarz w <?php ?> z wyjasnieniem rozwiazaloby to jakis problem. mikroskopijny ale zawsze :)

Wystarczy wstawić odpowiedni htaccess do katalogu z wtyczką i też nikt się nie będzie po nim rozglądał. Poza tym listowanie plików w katalogu powinno być domyślnie wyłączone - a włączyć można je jedynie jeżeli musimy. Wtedy nie mamy takich dziwny dylematów.
Sajt powinien być tak zaprojektowany i oprogramowany, żeby user miał prawo otworzyć wyłącznie to, co chce programista. Cała reszta zwraca 404 albo 410.

To co stosuje WP to tylko półśrodki i na prawdę nie stawiajmy ich za wzór do naśladowania.
Maciej W.

Maciej W. Ruby on what?!

Temat: exit(), die(), a może header()?

W wordpressie zrobili jak zrobili i tyle, to zaden autorytet (o masz, Aleksander ubiegl mnie o 2 minuty ;]).
Jesli chcemy zablokowac userowi mozlwiosc przegladania zawartosci katalogu, to zgodnie z tym co okreslaja kody statusow HTTP wypadaloby rzucic 403 (denied/forbidden), ale z roznych wzgledow mozna rzucic 404 albo przekierowac na glowna strone serwisu. Co kto woli/lubi/potrzebuje.
Wyswietlanie pustej strony jest tam jakims sposobem ale nie najlepszym IMHO (za to na pewno najprostszym).Maciej Wojdyr edytował(a) ten post dnia 17.12.10 o godzinie 14:53

konto usunięte

Temat: exit(), die(), a może header()?

Aleksander Wons:
Wystarczy wstawić odpowiedni htaccess do katalogu z wtyczką i też nikt się nie będzie po nim rozglądał.

Wszystkie hostingi obsługują .htaccess? ;)

konto usunięte

Temat: exit(), die(), a może header()?

Dariusz Licznerski:
Aleksander Wons:
Wystarczy wstawić odpowiedni htaccess do katalogu z wtyczką i też nikt się nie będzie po nim rozglądał.

Wszystkie hostingi obsługują .htaccess? ;)
Wszystkie obsługują PHP? To po co pisać w PHP skoro nie wszystkie hostingi to obsługują... No litości...

Teraz będę strzelał, ale odnoszę nieodparte wrażenie, że htaccess obsługuje pewnie z 90% hostingów jak nie więcej. Czyli szukasz dziury w całym :)
Maciej W.

Maciej W. Ruby on what?!

Temat: exit(), die(), a może header()?

Dariusz Licznerski:
Aleksander Wons:
Wystarczy wstawić odpowiedni htaccess do katalogu z wtyczką i też nikt się nie będzie po nim rozglądał.

Wszystkie hostingi obsługują .htaccess? ;)

Chyba wiesz gdzie robisz deploy i co na tej maszynie jest?

Cos czuje ze zaraz zostanie podniesiona kwestia szybkosci die vs exit i przedstawione jakies benchmarki :DMaciej Wojdyr edytował(a) ten post dnia 17.12.10 o godzinie 15:07
Konrad Karpieszuk

Konrad Karpieszuk WordPress Plugin
Compatibility
Assurance for WPML

Temat: exit(), die(), a może header()?

Dariusz Licznerski:
Wszystkie hostingi obsługują .htaccess? ;)

kazdy ma jakis tam tego odpowiednik. generalnie sie zaklada - i w tej dyskusji tez - ze mowimy o LAMP. bo inaczej moge odpowiedziec pytaniem czy wszystkie obsluguja php
Michał Płonka

Michał Płonka Programista PHP

Temat: exit(), die(), a może header()?

Maciej Wojdyr:
Cos czuje ze zaraz zostanie podniesiona kwestia szybkosci die vs exit i przedstawione jakies benchmarki :DMaciej Wojdyr edytował(a) ten post dnia 17.12.10 o godzinie 15:07
No ba! Oczywiście, że die będzie szybsze. Użycie die vs. exit będzie szybsze dokładnie o 25%. Przecież PHP będzie miał mniej kodu do analizowania (dokładnie o 1 znak), to jest oczywiste... Niestety wstawiając parametry różnica w wydajności będzie się obniżała wraz ze wzrostem długości parametru.

konto usunięte

Temat: exit(), die(), a może header()?

404

to jest jak strona jest nie znaleziona nie z winy uzytkownika

if(!defined(TWOJA_STARA)) die('gierarry hirr');

uzywa sie do zabezpieczenia plikow, ktorych NORMALNIE nikt nie probowalby zaladowac, tylko moze celowo probowac zaladowac jakis plik PHP zeby uszkodzic/wlamac sie na strone, np jakies biblioteki czy inne takie.

konto usunięte

Temat: exit(), die(), a może header()?

Mateusz Jaworski:
if(!defined(TWOJA_STARA)) die('gierarry hirr');

uzywa sie do zabezpieczenia plikow, ktorych NORMALNIE nikt nie probowalby zaladowac, tylko moze celowo probowac zaladowac jakis plik PHP zeby uszkodzic/wlamac sie na strone, np jakies biblioteki czy inne takie.

A nie było by lepiej zablokować dostęp htaccesem? Na prawdę trzeba stosować takie półśrodki?

konto usunięte

Temat: exit(), die(), a może header()?

Mateusz Jaworski:
404

to jest jak strona jest nie znaleziona nie z winy uzytkownika

if(!defined(TWOJA_STARA)) die('gierarry hirr');

uzywa sie do zabezpieczenia plikow, ktorych NORMALNIE nikt nie probowalby zaladowac, tylko moze celowo probowac zaladowac jakis plik PHP zeby uszkodzic/wlamac sie na strone, np jakies biblioteki czy inne takie.

Czyli dostarczasz potencjalnemu intruzowi informację o tym, że pod tym adresem jest coś, czego nie chcesz pokazać.

konto usunięte

Temat: exit(), die(), a może header()?

Aleksander Wons:
Mateusz Jaworski:
if(!defined(TWOJA_STARA)) die('gierarry hirr');

uzywa sie do zabezpieczenia plikow, ktorych NORMALNIE nikt nie probowalby zaladowac, tylko moze celowo probowac zaladowac jakis plik PHP zeby uszkodzic/wlamac sie na strone, np jakies biblioteki czy inne takie.

A nie było by lepiej zablokować dostęp htaccesem? Na prawdę trzeba stosować takie półśrodki?

Jeżeli aplikację aktualizujesz,instalujesz, rozsiewasz np. poprzez paczki PEAR to i tak może obciąć pliki .htaccess gdyż PEAR traktuje je jako ukryte i np. PFM nie daje ich w package.xml. Tak więc nie jest to zawsze 100% skuteczne rozwiązanie w przeciwieństwie do zwykłego die(). Tutaj rozwiązanie Mateusza sprawdzi się zawsze, w każdej sytuacji i nie jest żadnym półśrodkiem.

A potencjalny intruz nie jest debilem (z reguły ;) i nie ma znaczenia czy dasz mu die, exit, 404, 503, 666 (redirect to hell) czy cokolwiek innego.

konto usunięte

Temat: exit(), die(), a może header()?

Adam Piotrowski:

A potencjalny intruz nie jest debilem (z reguły ;) i nie ma znaczenia czy dasz mu die, exit, 404, 503, 666 (redirect to hell) czy cokolwiek innego.

Wobec tego pewnie też w Twoich portalach ładnie wypisujesz, czy podano zły login, czy hasło? ;)

konto usunięte

Temat: exit(), die(), a może header()?

Łukasz Karpuć:
Adam Piotrowski:

A potencjalny intruz nie jest debilem (z reguły ;) i nie ma znaczenia czy dasz mu die, exit, 404, 503, 666 (redirect to hell) czy cokolwiek innego.

Wobec tego pewnie też w Twoich portalach ładnie wypisujesz, czy podano zły login, czy hasło? ;)

A chcesz bana na kontakt i wiadomości ? :D

konto usunięte

Temat: exit(), die(), a może header()?

Adam Piotrowski:

Jeżeli aplikację aktualizujesz,instalujesz, rozsiewasz np. poprzez paczki PEAR to i tak może obciąć pliki .htaccess gdyż PEAR traktuje je jako ukryte i np. PFM nie daje ich w package.xml. Tak więc nie jest to zawsze 100% skuteczne rozwiązanie w przeciwieństwie do zwykłego die(). Tutaj rozwiązanie Mateusza sprawdzi się zawsze, w każdej sytuacji i nie jest żadnym półśrodkiem.
Są półśrodkiem, bo musisz pamiętać o tym, żeby wszędzie sprawdzać, czy masz die i sprawdzać czy aby na pewno zdefiniowałeś odpowiednią stałą i jeszcze sprawdzić czy przez przypadek jakaś zewnętrzna biblioteka nie zdefiniowała już takiej stałej.
W przypadku htaccess robisz dwa katalogi - jeden publiczny, drugi prywatny z jednym htaccess. Skoro wiesz, że pear sprawia problemy te są jeszcze inne narzędzie takie jak rsync. Dalej uważam, że die w każdym możliwym pliku to wyłącznie półśrodek, który na dodatek możne się posypać. htaccess jest zawsze prostszy i szybszy.

No i rozumiem, że nie używasz na przykład mod_rewrita na współdzielonych hostingach, bo przecież trzeba to w htaccess umieścić, a to przecież może się nie przegrać? ....

A potencjalny intruz nie jest debilem (z reguły ;) i nie ma znaczenia czy dasz mu die, exit, 404, 503, 666 (redirect to hell) czy cokolwiek innego.
Tak ale potencjalne roboty mogą Ci te strony po prostu zaindeksować, jak nie zwrócisz odpowiedniego nagłówka. Poza tym g...o usera obchodzi jakie pliki są w systemie. Ona ma dostać stronę a nie łazić sobie po plikach.Aleksander Wons edytował(a) ten post dnia 17.12.10 o godzinie 17:56
Waldemar Jonik

Waldemar Jonik właściciel,
webmaster,
programista, JW Web
Development

Temat: exit(), die(), a może header()?

Dariusz Licznerski:
Wszystkie hostingi obsługują .htaccess? ;)

na jakieś 300 projektów może 3 razy spotkałem brak obsługi .htaccess ale wystarczyło mniej lub bardziej grzecznie poprosić admina o udostępnienie i wszędzie było obsługiwane. nie ma się co nad tym stanawiać bo to standard obecnie.
Daniel Częstki

Daniel Częstki senior php developer

Temat: exit(), die(), a może header()?

hmmm

not o w końcu jak to jest z tym exit() i die() ;) hehe

konto usunięte

Temat: exit(), die(), a może header()?

Adam Piotrowski:
Łukasz Karpuć:
Adam Piotrowski:

A potencjalny intruz nie jest debilem (z reguły ;) i nie ma znaczenia czy dasz mu die, exit, 404, 503, 666 (redirect to hell) czy cokolwiek innego.

Wobec tego pewnie też w Twoich portalach ładnie wypisujesz, czy podano zły login, czy hasło? ;)

A chcesz bana na kontakt i wiadomości ? :D

Tam na końcu jest ";)" ;)

Po prostu jest parę rzeczy, które: raz, zabierają czas; dwa, są zbędne. I tak mi się wrzuciło to do jednego worka ;) Przykład całkiem abstrakcyjny.



Wyślij zaproszenie do