![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam (IMG:style_emoticons/default/businesssmiley.png) Mam cos takiego i działa chyba bez wad choc gdzies czytalem ze REFERER moze byc blokowany i nie wiem czy to przekierowanie jest ok:
AD1
I miałem problem z własnoręcznym wykombinowaniem tego prostego kodu zw na skladnie ciagle mi cos nie dzialalo. Wytlumaczy mi ktos zwieźle dlaczego w linku po REFERER'] jest . ' a przy już header ma nie byc?! Jestem nowicjuszem czytajac tutoriale nie wchodzi mi nic lepiej mi sie uczy czytajac i przerabiajac gotowe kody wiec prosilbym o konkretna odpowiedz zamiat zaganiania do nauki chyba ze naprawde lopatologiczny kurs krok po kroku:) AD2 2 problem rowniez chyba składniowy mialem zeby wstawić w ten kod refresha, gdyby ktos mi mógł rozjaśnić czy się dało do tego 'location' wmontowac i jak?
AD3 lub czy dalo sie jakos tak zeby nazwe tej funkcji wmontowac w ponizszy header bo tez nie umialem
AD4 Ze sleepem byl problem ze nie wyswietlalo tekstu czy na poczatku go wrzucalem czy na koncu i czy header byl przed echo czy po tak jakby sleep opoznial tylko header. Czy nalezalo cos kombinwac z ob_flush? mam to dla indexu a zapomnialem ze ta strona sie w index nie includuje i uznalem ze to nie to a moze wlasnie to byloby roziazanie. Bylbym wdzieczny za nauki.. niby działa ale nie lubie niedomówień i chciałbym wiedzieć i zapamietać (IMG:style_emoticons/default/nerdsmiley.png) Pozdrawiam KG Ten post edytował fate 10.04.2012, 10:32:52 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
1. To wszystko są operacje na stringach, a dokładnie to ich łączenie
w linku po $_SERVER['HTTP_REFERER'] chcesz jeszcze dołączyć jakiś nowy string po nim i dlatego musisz dodać kropkę (czyli operator łączenia stringów) i rozpocząć literał ze stringiem który chcesz dodać w przypadku header nie chcesz dołączać za $_SERVER['HTTP_REFERER'] więc nie musisz wywoływać operatora łączenia i wpisywać literału w header masz Kod 'Refresh: 3; URL=' . $_SERVER['HTTP_REFERER'] string literał łączenie stringów string ze zmiennej w linku natomiast masz: Kod '<a href="' . $_SERVER['HTTP_REFERER'] . '"> Powrót/Return </a>' string literał łączenie stringów string ze zmiennej łączenie stringów literał więcej info masz tu: http://www.php.net/manual/en/language.types.string.php 2. Mówiąc prosto refresh i location to dwie różne komendy (ściśle są to nagłówki odpowiedzi HTTP), a każda komenda musi być w osobnej linijce w nagłówku więc nie da się ich połączyć. więcej masz: http://en.wikipedia.org/wiki/List_of_HTTP_header_fields Location od razu przekierowuje na jakąś stronę Refresh robi to samo co samo co Location, tylko najpierw czeka 5 sekund wydaje mi się że wystarczy że po prostu zmienisz location na refresh i będzie działało tak jak chcesz, ale napisz dokładnie o co Ci chodzi 3.
Nie wiem po co na końcu próbowałeś wykonywać odwołanie do tablicy podobne do $_SERVER['HTTP_REFERER'] (to jest odwołanie do elementu HTTP_REFERER tablicy $_SERVER, musisz przeczytać jakiś kurs podstaw PHP bo bez pewnej wiedzy nie da się robić rzeczy po prostu próbując, dlatego najpierw dzieci się uczy liczenia od jeden do dziesięć, a nie każe im się od razu całki rozwalać) 4. nie wiem o co Ci dokładnie chodzi, ale chyba tak. Dodatkowo odnośnie tej funkcji to nie gwarantowane jest że ona zadziała niektóre przeglądarki i antywirusy blokują tą funkcjonalność ze względów bezpieczeństwa dodatkowo w ramach bezpieczeństwa, HTTP_REFERER jest daną przekazywaną przez użytkownika, więc nie można jej ufać, atakujący Twoją stronę może wykorzystać to by przekierować użytkownika na spreparowaną stronę podobną do Twojej i wykraść jego dane (zwykle ludzie nie patrzą na zmieniający się adres URL), więc musisz sprawdzać czy dane w tej zmiennej nie są zfałszowane Ten post edytował jaslanin 10.04.2012, 14:22:05 |
|
|
![]() ![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie jaslanin +
Bardzo mi to wszystko rozjaśniłeś. Widzę że nie wdrapałem się nawet na 1 schodek z php coś czuję że nigdy mistrzem nie będę ale spróbuję sie podszkolić i opanować podstawy - hobbystycznie. Bezpiecznej stronki i tak wiem, że samodzielnie nie wykonam ale może nikt bez powodu nie bedzie mnie atakował choc pojecia nie mam czy to powszechne czy raczej zadkie zjawisko. Ad1 doczytam bo troche nie łapie dlaczego to co w echo ' ' nie moze byc traktowane jako 1 string tylko musze łączyc spodzieam sie ze dlatego iz mam literały i stringi zmiennej. Ad2 Odpowiedz mam w 3 akapicie Ad3 To byla kolejna próba (oddzielna) te wszystkie kody nie były razem w pliku - chyba odpowiedziałem (IMG:style_emoticons/default/nerdsmiley.png) Ad4 Czy wspominales o ob_flush czy o sleep z tym blokowaniem przez antyviry spodziewam sie ze raczej flush? ze sleepem mialem problem ze byl bialy obraz nie wykonywalo sie echo z linkiem niezaleznie gdzie stawialem sleepa ale chyba dlatego ze header wykonuje sie jako 1 Rozumiem ze nie ma za bardzo w PHP alternatywy do HTTP_REFERER a wiec jak wykonac takie sprawdzenie czy dane nie sa sfalszowane ( oczym poczytac)? Jeszcze raz dziekuje za naprawde wyczerpujace odpowiedzi, dobry z Ciebie człowiek (IMG:style_emoticons/default/zakochany.gif) Pozdrawiam KG |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 511 Pomógł: 143 Dołączył: 13.03.2010 Skąd: Jasło Ostrzeżenie: (0%) ![]() ![]() |
Najszybszą drogą do sukcesu jest podwojenie ilości błędów, które popełniasz. Thomas J. Watson
Niemniej jednak bez przeczytania jakiegoś kursu dla początkujących w PHP który by pokrywał podstawy programowania, nabawisz się wielu frustracji. Jak już się nauczysz podstaw w jednym języku to w dużej mierze pewne koncepcje się powtarzają. Możesz się też zapisać np. na kurs: http://www.udacity.com/overview/Course/cs101 i w siedem tygodni napisać swoją wyszukiwarkę podobną do google (z początków firmy), wykładowcą jest profesor z uniwersytetu w USA, albo o PHP http://devzone.zend.com/6/php-101-php-for-...olute-beginner/ ad.1 nie wiem czy dobrze cię rozumiem ale jeżeli masz tak:
to w echo masz dwa stringi które musisz dopiero połączyć w jeden (odpowiednio skleić) możesz też robić coś takiego: itd. http://www.php.net/manual/en/language.type...parsing.complex odnośnie jeszcze samego pisania kodu z PHP z HTML to lepiej robić to tak:
Inne podobne porady: http://net.tutsplus.com/tutorials/html-css...-readable-code/ 4. Tak chodzi mi o flush, antiviry to trochę uproszczenie, raczej programy do kompleksowego zabezpieczania komputera. One na to nie pozwalają bo zanim pokażą użytkownikowi stronę muszą ją w pełni sprawdzić, a nie tylko częściowo. Odnośnie referer'a to zawsze musisz założyć że może być pusty (musisz zdecydować co wtedy chcesz zrobić) lub zafałszowany (musisz go sprawdzić, zresztą żadnej danej otrzymanej od użytkownika ufać nie możesz, zawsze musisz sprawdzać i zabezpieczać). Jednym ze sposobów jest np. ograniczenie działania do jakichś domen np. poprzez użycie parse_url ważną sprawę jest by nie sprawdzać czy zmienna HTTP_REFERER jedynie zawiera nazwę domeny bo można to ominąć np. tak dla domeny "domena.pl" domena.pl.jestem-hakerem.pl/ukradne_ci_orzeszki.html proste sprawdzanie tego nie wyłapie należy robić to tak:
Możesz jeszcze przeczytać: http://net.tutsplus.com/tutorials/php/30-p...-for-beginners/ https://www.owasp.org/index.php/Cheat_Sheets http://www.udacity.com/overview/Course/cs101 http://devzone.zend.com/6/php-101-php-for-...olute-beginner/ +++ http://www.zend.com/en/download/487 (możesz się zainteresować działem secuirty, pozatym jest to ogólny przegląd różnych umiejętności programisty, trzeba się zarejestrować by pobrać) Ten post edytował jaslanin 11.04.2012, 19:58:36 |
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 824 Pomógł: 106 Dołączył: 14.03.2012 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam
Dzięki za mnóstwo ciekawych linków i porad poczytam sobie. Jestem narazie po 1 kursie online po Polsku i przyznam ze wszystko mi za 1 nie weszło ze zrozumieniem. Bardzo mnie odrzucało od php.net ale teraz już udaje mi się to rozczytać i sie już nie lękam (IMG:style_emoticons/default/headsetsmiley.png) powoli się oswajam. Korciło mnie kilkukrotnie aby napisać tu kolejny temat i otrzymac gotowca ale udało mi się dobrnąć samodzielnie i rozwiązać parę problemów więc jestem chyba na dobrej drodze. Pozdrawiam, Dzieki jeszcze raz. Nie mam więcej pytań. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 29 Dołączył: 3.04.2010 Ostrzeżenie: (20%) ![]() ![]() |
Odnośnie referer'a to zawsze musisz założyć że może być pusty (musisz zdecydować co wtedy chcesz zrobić) lub zafałszowany (musisz go sprawdzić, zresztą żadnej danej otrzymanej od użytkownika ufać nie możesz, zawsze musisz sprawdzać i zabezpieczać). Jednym ze sposobów jest np. ograniczenie działania do jakichś domen np. poprzez użycie parse_url ważną sprawę jest by nie sprawdzać czy zmienna HTTP_REFERER jedynie zawiera nazwę domeny bo można to ominąć np. tak dla domeny "domena.pl" domena.pl.jestem-hakerem.pl/ukradne_ci_orzeszki.html proste sprawdzanie tego nie wyłapie należy robić to tak:
Skąd takie przeczulenie dotyczące danych przesyłanych przez użytkownika? W tym celu to nie ma sensu. To się dzieje, jedynie gdy ktoś sam majstruje przy refererze - jak atakujący miałby ustawić ofierze referera? Preparacja żądania AJAXowego nic nie da przeca, a jak ktoś wejdzie tam z innego linku, przekieruje go spowrotem (IMG:style_emoticons/default/wink.gif) Nawet nie można tego wykorzystać do maskowania podejrzanych urli, jak na pewnym znanym protalu społecznościowym można było wywołać http://example.com/redirect?url=http://zuo...and_destroy.zuo. Fajnie, że zwrcasz uwagę na bezpieczeństwo, ale też dobrze czasami iwedzieć, gdzie używać zabezpieczeń i jakich, a gdzie wcale (IMG:style_emoticons/default/wink.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 18:33 |