Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][Symfony2]Używanie komponentów Symfony
Forum PHP.pl > Forum > PHP > Frameworki
adbacz
Chciałbym użyć komponentu HttpFoundation, jednak nie w całości ponieważ nie potrzebne jest mi tyle plików (oprócz licencji itp.) w aplikacji, więc nasunęło mi sie pytanie, czy można użyć tylko kilku plików danego komponentu?
by_ikar
Zależy jakich plików. Tyle że całe httpfoundation akurat jest fajne, masz tam request, response, session, cookies itp. Za bardzo nie wiem z czego chcesz zrezygnować szczerze mówiąc.
adbacz
No właśnie w tym problem. Napisałem do pewnej aplikacji zabezpieczenie sesji, które zapobiega jej wykradnięciu (a przynamniej bardzo utrudnia), ale zauważyłem, że sesję w Symfony2, tą NativeSession, można łatwo ukraść, poprzez skopiowanie ID z ciastka...
Forti
Cytat(adbacz @ 4.01.2015, 17:56:18 ) *
No właśnie w tym problem. Napisałem do pewnej aplikacji zabezpieczenie sesji, które zapobiega jej wykradnięciu (a przynamniej bardzo utrudnia), ale zauważyłem, że sesję w Symfony2, tą NativeSession, można łatwo ukraść, poprzez skopiowanie ID z ciastka...



Coś mi się wydaje, że to wcale nie jest takie proste wink.gif chociaż fakt, że w bazie trzymane jest tylko session ID, bez dodatkowych informacji.
adbacz
Zrobiłem tak, by po wykradnięciu ID sesji i podszyciu sie w innej przeglądarce, nie można było odczytać jej zawartości (jest resetowana) - podczas testowania to działało, ale nie mam 100% pewności tego rozwiązania.
by_ikar
To że będziesz miał tam dwie trzy klasy w plikach których nie używasz nie powinno ci przeszkadzać, dlatego że to powinieneś traktować jak "vendor" i przeglądać tylko wtedy kiedy próbujesz zrozumieć działanie jakiejś funkcji. Nie ma problemu abyś napisał swoją wersję NativeSession która chroni przed sessjon hijacking.

Jeżeli chodzi o takie zabezpieczenie, to jest to trochę średnie zabezpieczenie, dlatego że ktoś kto potrafi wykraść komuś ID sessji, potrafi też odpowiednio preparować user agenta, więc wydaje mi się że nie powinieneś się tym aż tak bardzo przejmować, tylko wykorzystać to co już gotowego, co zostało przetestowane przez dziesiątki osób.
adbacz
Rozumiem pierwszy akapit, jednak zastanawia mnie trzymanie w aplikacji masy plików, których faktycznie nie użyję (wiem to na pewno już teraz). Aplikacja będzie instalowana na wielu serwerach przez innych ludzi dla innych ludzi więc nie widzę sensu niepotrzebnie zaśmiecać i powiekszać liczbę plików a za tym wielkość archiwum z aplikacją. Może się mylę, w końcu Symfony 2 ma mase plików, jednak faktycznie, one są, ale nikt mi ich nie nakazuje używać. Są do mojej dyspozycji i tylko ja o tym zdecyduję, czy ich użyje. Jednak, jeśli masz w domu niepotrzeby 4 telewizor, który leży i zawadza albo się kurzy, to będziesz go trzymał, czy oddasz komuś / sprzedasz / wyrzucisz?

Wiesz, wolę mieć czyste sumienie. Może nie zabezpieczy mnie to w 100%, ale zawsze jakoś utrudni to włamywaczowi działanie. Sprawdziłem to w różnych okolicznościach i działa bez problemu w kilkunastu stronach więc raczej nie jest w tym nic problematycznego, ale zawsze lepsze jakiekolwiek większe zabezpieczenie, niż żadne. Nie chcę później pluć sobie w twarz mówiąc "A czemu ja tego nie zrobiłem"...
by_ikar
Jakiś czas temu podobnie myślałem, przerobiłem kilka plików z httpfoundation, kilka wywaliłem, bo chciałem mieć "porządek", tyle że to wymaga czasu, wymaga sprawdzenia tego wszystkiego itp. Zrobisz jak uważasz, ale te kilka kilobajtów które mogą ci się w przyszłości przydać, nikomu nie zaszkodzi, a wątpię aby ktoś robił przy deploy'u z tego jakieś halo, że jest kilka kb w paczce więcej, zwłaszcza, że vendora raczej się nie commituje.. Nie kupuje telewizora, jeżeli jeden już mam wink.gif to że są jakieś pliki których się nie używa zawsze, to jest akurat nic groźnego, o ile te pliki wiele miejsca nie zajmują IMO. Huh tak pomyślałem że gdybyś zobaczył jak wyglądają pakiety NPM, gdzie każdy pakiet może mieć swoje submoduły, i takie submoduły mogą się powtórzyć w innych pakietach, to chyba byś osiwiał wink.gif ale tak to się robi, jeżeli chce się wykorzystywać jakieś zależności, jednocześnie nie mieć konfliktu w wersjach.

Zabezpieczenie jak chcesz zrobić, to zrób, tylko raczej zrób to jako klasa na zasadzie podobnej jak pozostałe klasy storage, które implementują interfejs sessionstorage. Bo jak komuś przyjdzie później to jakoś rozbudować, to będzie pisać od nowa, albo szukać po repozytoriach tego jednego pliku, co jest raczej średnie.
com
by_ikar ma rację, bo spójrz na to z innej strony, sf jak każdy framework się rozwija, wiec modyfikując vendor skazujesz się na użycie tej jednej konkretnej wersji której używasz w tym momencie, a vendora do aplikacji się nie wrzuca tylko zaciąga composerem, wiec każda taka Twoja modyfikacja zmusiła by Cie do wrzucania całej paczki aplikacji wraz z tą daną wersją sf, co jest niezalecane wink.gif
adbacz
Czy licencja komponentów Symfony mówi coś o tym, że trzeba każdy plik trzymać wraz z innymi z danego komponentu? Czy można (zachowując komentarze Copyrights) załączyć do projektu tylko jeden plik, czy trzeba trzymać wszystkie pliki komponentu w katalogu, tak, jak zostały pobrane?
com
http://symfony.com/doc/current/contributin...de/license.html

tu wszystko jest napisane, to co chcesz zrobić miało by sens jakbyś tworzył własnego forka i go rozwijał, bo nawet jak nie używasz czegoś dziś to nie masz 100% gwarancji, że za chwile nie okaże się to Tobie potrzebne, Fabien dla "lekkich" aplikacji stworzył Silex, ale tam itak używane sa bungle sf, zobaczysz na działanie aplikacji to nie będzie miało wiekszego wpływu a oznacza tylko kłopoty wink.gif
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.