Napisane: 10.08.2012, 22:03:58 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
|
Forum: Poszukuję · Podgląd postu: #984641 · Odpowiedzi: 13 · Wyświetleń: 924 |
Napisane: 10.08.2012, 21:58:32 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Te głosy nie są nigdzie zapisywane Jako, że dziś mam przypływ dobroci: Funkcja oddaj_glos nei ma w sumie sensu - sprawdzasz czy $wybor == 1, jesli tak, inkrementujesz $opcje[1] etc. Wystarczyłoby ++$opcje[$wybor]; Tworzysz plik dane.txt, wpisujesz do niego w każdej linii ilość głosów, czyli na początek (mamy np. 4 opcje): Kod 0 0 0 0
Powinno działać, a jeśli nie albo tak, przeczytakj to anyway: Włącz wyświetlanie błędów, oraz poziom raportawania na taki, aby wyświetlał E_NOTICE. Znajdziesz o tym dużo informacji w internecie. Chodzi o to, aby kod:
Zwracał Ci błąd E_NOTICE, a nie wyświetlał pustą stronę. Jeśli napiszesz kolejny post, a jednak nie będziesz miał włączonego raportowania E_NOTICE, Bóg zabije jednego kotka |
Forum: Przedszkole · Podgląd postu: #984640 · Odpowiedzi: 9 · Wyświetleń: 3 807 |
Napisane: 10.08.2012, 14:09:21 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Parser nie spodziewał się zmiennej (token T_VARIABLE), tylko czegoś innego. Wklej cały plik, a najlepiej naucz się rozwiązywać trywialne 'syntax error'. |
Forum: PHP · Podgląd postu: #984505 · Odpowiedzi: 4 · Wyświetleń: 384 |
Napisane: 8.08.2012, 22:50:30 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
|
Forum: Przedszkole · Podgląd postu: #984188 · Odpowiedzi: 1 · Wyświetleń: 192 |
Napisane: 31.07.2012, 19:51:01 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Kod /** * @ORM\OneToMany(targetEntity="Category", mappedBy="section_id") */ protected $categories; To jest mapowane przez właściwość section, nie przez section_id. |
Forum: Frameworki · Podgląd postu: #982222 · Odpowiedzi: 3 · Wyświetleń: 266 |
Napisane: 13.07.2012, 08:20:10 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Hasła userów hashowane były poprzez SHA1 przy pomocy dwóch saltów. Pierwszy był saltem ogólnym/wspólnym i znaleźć go można było w kodzie aplikacji. Drugi był konkretnym saltem dla danego usera (nie pamiętam już jak generowanym ale załóżmy że losowo - był przechowywany obok hasła w bazie). Wyjściowy hash wyglądałe mniej więcej tak: SHA1(salt1.hasło.salt2); Chwalono to tak: - sha1 zamiast md5 - dłuższy hash - czyli na + - nie jeden a dwa salty - też na + - 1 dynamiczny salt- + - salty w różnych miejscach + A teraz zobaczcie czy to cokolwiek daje? Szczerze - totalne nic! Włam do bazy i mam hasło i jeden salt - zerknę na kod i już mam komplet - czym to się różni od innych metod "prostych" - prawie niczym - owszem jest może nieco więcej pracy ale tylko odrobinę. Odpowiedni skrypt c/c++ na mocnym sprzęcie, podłączenie do bazy i bruteforcem można przelecieć wszystkie hasła dość szybko. Nie zawszę masz dostęp i do bazy i do kodu źródłowego skryptu. Włam do bazy nie oznacza możliwości podejrzenia kodu źródłowego, dlatego ja będę zawsze za dwoma saltami. Co do przelecenia wszystkich haseł bruteforce: nie da się tego zrobić. Jeśli doobrze wiem, zbiór haseł jest nieskończony, to zbiór skrótów jest skończony bo 16^40 w przypadku SHA1. Co masz na myśli mówiąć "podłączenie do bazy"? Możliwości w wypadku SHA1 masz 1.46150164*10^48, nie wydaje mi się, że tak szybko je wszystkie znajdziesz (co nei nzaczy, że polecam SHA1). |
Forum: Przedszkole · Podgląd postu: #977023 · Odpowiedzi: 14 · Wyświetleń: 714 |
Napisane: 12.07.2012, 21:15:30 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Co do tęczowych tablic, przyznaje się, nei wiem zbyt wiele na ten temat - w każdym razie sól jest obroną przed nimi, ponieważ wydłużają one hasła, a tęczowe tablice służą jako kompormis między wszystkimi parami klucz:hash a ich generowaniem w trakcie wykonywania programu łamiącego. Sole nie muszą być inne, jak wspomniałem, chronią one przed atakami brute force na skrócie oraz użyciu tęczowych tablic na skrócie. Dlaczego hash stworzony z ciągu 30 znaków miałby być gorszy od stworzonego z 8 znaków? To nie ma znaczenia w tym wypadku, bowiem wszystkie skróty osiągają format [0-9a-f]{32}. Mógłbyś mi powiedzieć, na jakiej podstawie doszedłeś do wniosku, że większość soli ma mało znaków? |
Forum: Przedszkole · Podgląd postu: #976988 · Odpowiedzi: 14 · Wyświetleń: 714 |
Napisane: 12.07.2012, 19:49:53 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Hej, dodanie soli zwiększa bezpieczeństwo wobec ataków bruteforce przeprowadzanych na podstawie zakodowanego hasha nieznaną solą oraz głównie wyeliminowaniu skuteczności tęczowych tablic oraz ataków słownikowych - "ania1980" zmienia się w "ania1980fghfgh267556". Tęczowe tablice to właśnie zbiór wieelu hashów haseł oraz oczywiście często używanych wyrazów. Szansa na kolizję jest taka sama dla 3 znakowego hasła jaki i 20 znakowego. Podwójne hashowanie zwiększa kolizję, ponieważ możemy znaleźć dwie wiadomości A i B, gdzie H(A) != H( ale H(H(A)) == H(H() i analogicznie: jeśli H(A) == H( to też H(H(A)) == H(H(). Sól dla każdego hasła nie musi być inna, ponieważ i tak, chodzi o to, aby zapobiec tęczowym tablicom. Rozwiązanie które podajesz jest metodą "security through obscurity" - gdy ktoś wejdzie we władanie kodu źródłowego, przerobi skróty na prawdziwe. Najlepszą metodą będzie tu skorzystanie z wolnego oraz matematycznie poprawnego algorytmu mieszającego (sha512). |
Forum: Przedszkole · Podgląd postu: #976975 · Odpowiedzi: 14 · Wyświetleń: 714 |
Napisane: 10.07.2012, 08:45:38 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Od kilku dni sam uczę się Symfony2, dokumentacja dobra, brakuje tylko trochę "user contributed notes" jak w manualu PHP Zawsze jest to forum, stackoverflow i inne serwisy, gdzie ktoś miał ten sma problem i opwoie jak go rozwiązać. Po kilku dniach czuję się w miarę wsobodnie, ale na początku byłem totalnie zagubiony. ORM wbrew pozorom fajna sprawa, trzeba się do niego tylko najpierw przekonać, a Twig to chyba najlepszy system szablonów jakiego używałem. |
Forum: Object-oriented programming · Podgląd postu: #976197 · Odpowiedzi: 28 · Wyświetleń: 3 152 |
Napisane: 5.06.2012, 18:23:19 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Co to za stała "CURLOPT_PRADO_POSTFIELDS"? Btw. poczytaj o "CURLOPT_COOKIESESSION". |
Forum: PHP · Podgląd postu: #967634 · Odpowiedzi: 2 · Wyświetleń: 413 |
Napisane: 3.06.2012, 15:43:39 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Kod pentagon greycoffey # chmod --help Składnia: chmod [OPCJA]... UPRAWN[,UPRAWN]... PLIK... albo: chmod [OPCJA]... UPRAWN_ÓS PLIK... albo: chmod [OPCJA]... --reference=PLIK_WZ PLIK... Zmiana uprawnień do każdego PLIKU na UPRAWN. -c, --changes jak -v, ale podanie tylko kiedy zaszła zmiana --no-preserve-root bez traktowania katalogu '/' w specjalny sposób (domyślnie) --preserve-root odmowa rekusywnego działania na '/' Zmienia uprawnienia do każdego PLIKU do UPRAWN. -f, --silent, --quiet wyłączenie większości komunikatów o błędach -v, --verbose wypisanie informacji o każdym przetwarzanym pliku --reference=PLIK_WZ użycie uprawnień pliku PLIK_WZ zamiast wartości UPRAWN -R, --recursive zmiany też w plikach w podkatalogach --help wyświetlenie tego opisu i zakończenie --version wyświetlenie informacji o wersji i zakończenie UPRAWNIENIA mają formę `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'. Raporty o błędach chmod wysyłaj do bug-coreutils@gnu.org strona domowa GNU coreutils: http://www.gnu.org/software/coreutils/ Pomoc w używaniu oprogramowania GNU: http://www.gnu.org/gethelp/ O błędach tłumaczenia chmod poinformuj przez http://translationproject.org/team/ Żeby przeczytać kompletną dokumentację uruchom: info coreutils 'chmod invocation' Generalnie polecam dodawanie '--help' gdy nie wiemy lub szukanie w manie. |
Forum: Komputery i oprogramowanie · Podgląd postu: #967212 · Odpowiedzi: 3 · Wyświetleń: 23 977 |
Napisane: 29.05.2012, 19:28:26 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
1) Przy każdym logowaniu sprawdzam czy token użytkownika jest w bazie i zgadza się z tym który gość ma w cookie ? 2) Przy każdym pierwszym logowaniu (gdy brak cookie -> czyli użytkownik dawno się nie logował albo wcisnął WYLOGUJ) generuję losowy token i zapisuję/aktualizuję z tym, który jest zapisany przy logującym się użytkowniku ? 1) Taki schemat: Jeśli użytkownik nie jest azlogowany a posiada ciastko o nazwie 'token': Sprawdź czy istnieje w bazie, jeśli tak, zaloguj go. Jeśli nie - usuń. W przeciwnym wypadku pomiń te akcje. 2) Tak. Polecam do tego ciastko ustawić z flagą httpOnly aby zapobiec niektórym rodzajom przechwyceń. Więcej w manualu do funkcji setcookie. |
Forum: Przedszkole · Podgląd postu: #966158 · Odpowiedzi: 17 · Wyświetleń: 810 |
Napisane: 10.05.2012, 13:59:52 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
W tym wypadku $i jest wskaźnikiem, next() go inkrementuje, rewind() ustawia na 0. key() zwraca klucz danego obiektu, a current() wartosc. |
Forum: Object-oriented programming · Podgląd postu: #962445 · Odpowiedzi: 12 · Wyświetleń: 616 |
Napisane: 6.05.2012, 21:21:01 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Rozdzielenie baz nie ma sensu, możesz jedynie używać innych baz jeśli nie zachodzą między nimi relacje, w innym wypadku nie ma sensu. Backup najlepiej robić do plików SQL, zamiast na bazę backupową - jak MySQL Ci padnie to całe - i co wtedy? Co do serwera, w zależności od potrzeb. Stawiałbym od VPSów, ale jeśli budżet wynosi ok. 200zł brutto/miesiąc to polecam Kimsufi 16G z gamy OVH, wystarczy podstawowa wiedza nt. konfiguracji takiego serwera, a hardware jest bardzo dobry i uciągnei nawet wiele takich wymagających serwerów. |
Forum: Przedszkole · Podgląd postu: #961560 · Odpowiedzi: 9 · Wyświetleń: 479 |
Napisane: 4.05.2012, 22:16:20 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Oto mi chodziło: Poprawność $plik[name] sprawdzam wcześniej. / oraz * nie są potrzebne bo $plik[name] zawiera tylko "kasia.jpg" lub "fajnie45.gif". MD5 mnie nieurządza tutaj ponieważ dostałbym zakodowane "far4qr45qt4.jpg" . Problem solved. Dzięki Btw. kropka w wyrażeniu regularnym powinna być zabackslashowana(?) "\.", w innym wypadku zastępuje wszelkie inne znaki. |
Forum: PHP · Podgląd postu: #961088 · Odpowiedzi: 10 · Wyświetleń: 677 |
Napisane: 4.05.2012, 22:13:06 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
|
Forum: Przedszkole · Podgląd postu: #961085 · Odpowiedzi: 10 · Wyświetleń: 830 |
Napisane: 3.05.2012, 20:21:48 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Poczytaj o CSRF i sposobach na ich zapobieganie. |
Forum: Przedszkole · Podgląd postu: #960755 · Odpowiedzi: 1 · Wyświetleń: 232 |
Napisane: 29.04.2012, 15:56:00 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
A kolumna user_id to ma typ int?Jeśli tak to najprawdopodobniej trzeba by było rzutować:
lub
Rzutowanei akurat nie ma nic do rzeczy. Autorze, i pokaż nam co to zwróci. Zapytanie jest ok, pewnie albo połączenie złe, albo struktura zła. |
Forum: Przedszkole · Podgląd postu: #959789 · Odpowiedzi: 14 · Wyświetleń: 473 |
Napisane: 19.04.2012, 14:31:38 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Fifi209, a nagle zachodzi potrzeba użycia dwóch połączeń do bazy danych - bo jedna zawiera ogromne ilości danych roboczych, a w drugiej są już te dane przetworzone. Jak byś zrobił taką przetwarzarkę, kiedy połączenie z baża danych było tylko jedno? Singleton to antywzorzec, w 99.99% przypadków NIE JEST potrzebny. Co do autora, kod obiektowy to to nie jest, tylko opakowany w klasy. Connection, to mogłaby być zmienna przechowująca uchwyt do bazy, funkcja to connect() lub disconnect(). Disconnection nie może istnieć, bo jest niepoprawne gramatycznie. Ktoś dobrze napisał, żeby zrobić to w metodach __construct() i __destruct(). Nie rozumiem stosowania pól statycznych, jak już robisz typową klasę uczących się programowania obiektowego, czyli sterownik do bazy danych, fajnie byłoby gdyby sterownik do bazy danych komunikował się z managerem baz danych. Raz stosujesz mojaFunkcja() a raz moja_funkcja() - zdecyduj się na jedno nazewnictwo, bo potem obudzisz się z ręką w nocniku jak przyjdzie więcej kodu. Skrobnąłem Ci przykładowy kod, w którym możesz zobaczyć zarys projektowy (?) przykładowej klasy do obsługi bazy danych. Pisałem z palca i nie testowałem, więc może są jakieś drobne błędy, które sobie poprawisz. Już teraz widzę, że rozszyfrowywaniem $dsn powinien się zajmować DatabaseManager, drivery powinny być przechowywane w tablicy DatabaseManeger::$drivers jako np. 'mysql'=>$mysqlDriver, a DatabaseManager powinien sprawdzać czy istnieje tam system bazodanowy z dsn i na podstawie tego wybrać sterownik lub zwrócić wyjątek, że nie znaleziono pasującego sterownika. To także zostawiam dla Ciebie
|
Forum: Object-oriented programming · Podgląd postu: #957453 · Odpowiedzi: 14 · Wyświetleń: 1 072 |
Napisane: 14.04.2012, 16:02:12 | |
Grupa: Zarejestrowani Postów: 320 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 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 |
Forum: Przedszkole · Podgląd postu: #956121 · Odpowiedzi: 5 · Wyświetleń: 482 |
Napisane: 18.06.2011, 08:51:15 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Co dalej? Polecam ćwiczenia na wąską talię: Cytat Stań w rozkroku, ugnij nogi w kolanach, zegnij ręce w łokciach, wykonaj skręt tułowia ciągnąc prawy łokieć w kierunku lewego kolana, a następnie lewy łokieć w kierunku prawego. Nie odrywaj stóp od ziemi. Powtórz po 20 razy w każdą stronę. |
Forum: Hydepark · Podgląd postu: #873628 · Odpowiedzi: 10 · Wyświetleń: 1 135 |
Napisane: 2.05.2011, 21:43:55 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Aby uniknąć takich problemów, najlepiej trzymać się standardu PSR-0 ;-) |
Forum: Przedszkole · Podgląd postu: #860114 · Odpowiedzi: 4 · Wyświetleń: 579 |
Napisane: 6.04.2011, 18:50:31 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Zamiast $q daj $sql. |
Forum: PHP · Podgląd postu: #852716 · Odpowiedzi: 4 · Wyświetleń: 1 059 |
Napisane: 9.03.2011, 19:41:03 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Gdzie wykorzystujesz ten plik? Może go inkludujesz potem, bo on sam jest niezbyt przyjazny? |
Forum: Przedszkole · Podgląd postu: #844590 · Odpowiedzi: 11 · Wyświetleń: 958 |
Napisane: 20.02.2011, 14:49:09 | |
Grupa: Zarejestrowani Postów: 320 Dołączył: 3.04.2010 Ostrzeżenie: (20%) |
Zmiennych nie można zaczynać od cyfr. |
Forum: Przedszkole · Podgląd postu: #839088 · Odpowiedzi: 2 · Wyświetleń: 270 |
Nowe odpowiedzi Brak nowych odpowiedzi Popularny temat (Nowe) Popularny temat (Brak nowych) |
Sonda (Nowe) Sonda (Brak nowych) Zamknięty temat Przeniesiony temat |
Wersja Lo-Fi | Aktualny czas: 9.05.2024 - 23:17 |