Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%)
|
Witam,
Ostatnio zastanawiałem się, jakie są często spotykane błędy, a raczej złe nawyki bądź po prostu bardzo nie wydajne lub nieoptymalne kawałki kodu jakie można znaleźć/napisać w PHP (IMG:style_emoticons/default/smile.gif) Zbieram też antywzorce. Gdzież indziej mógłbym się o to zapytać niż nie tutaj (IMG:style_emoticons/default/smile.gif) Przykład wszystkim pewnie dobrze znany:
Poprawna forma:
@aras785 - masz rację dodałem poprawną formę (IMG:style_emoticons/default/smile.gif) Szukam podobnych konstrukcji, antywzorców programowania itp. Zależy mi na tym by były one proste (IMG:style_emoticons/default/smile.gif) Nie szukam jakichś skomplikowanych 100 linijkowych kodów na dowód tego, że są źle napisane - chodzi mi o same zamysły (IMG:style_emoticons/default/smile.gif) Jeśli znacie jakieś piszcie proszę (IMG:style_emoticons/default/wink.gif) Ten post edytował Sephirus 14.01.2013, 13:41:14 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
@sowiq: w PHP to przejdzie, bo język ten ma swoje głupotki. W większości języków jednak zapis ten wywinie orła. Pisząc zaś o antywzorcach i błędach można wyjść poza jezyk, wskazując jego usterki, nielogiczności - w odniesieniu do innych znanych sobie języków. Bo niestety, ale język ten ma swoje upierdliwości, które widać patrząc z perspektywy innych. I nie chodzi mi o wydajność czy tego typu rzeczy, ale właśnie nielogiczność pewnych konstrukcji, struktur czy funkcji. Wspomniana niejednoznaczność wyniku funkcji, brak konsekwencji w kolejności parametrów (niektóre funkcje można wywołać raz tak, raz siak) czy problemy z zasięgiem zmiennych lokalnych (właśnie dlatego wspomniany) to przecież nie jedyne, które mogą wkurzać.
Co do zezwalania na modyfikacje tylko danym POST, to co to za różnica? Dane jedynie minimalnie trudniej spreparować. Po prostu nie możemy na pałę w linku podmienić parametru. Ale firebug, tamperdata lub podobne i zero problemów. To jest bardziej zalecenie projektowe. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%)
|
Co do zezwalania na modyfikacje tylko danym POST, to co to za różnica? Dane jedynie minimalnie trudniej spreparować. Po prostu nie możemy na pałę w linku podmienić parametru. Ale firebug, tamperdata lub podobne i zero problemów. To jest bardziej zalecenie projektowe. Oczywiście, że to zalecenie projektowe, nikt Ci przecież nie każe na siłę tak robić. Ale jest to zalecenie dotyczące bezpieczeństwa. I nie chodzi tu o to, że "atakującemu" będzie trudniej wysłać takie zapytanie, bo to akurat pryszcz. Chodzi o XSS, o którym wspomniałem wcześniej. Jak na Twojej stornie masz jakąś dziurę pozwalającą na XSS, której nie zauważyłeś i ktoś doda Ci taki obrazek jak poniżej, to masz mały problem.
Chodzi o to, że zapytania POST nie da się wygenerować za pomocą prostego XSS. Musiałaby to być mega dziura pozwalająca na dodanie JS (IMG:style_emoticons/default/smile.gif) [edit] Przypomniał mi się tutaj jeden fajny bajer jaki widziałem w kodzie młodego kolegi... i żeby nie było to autentyk (IMG:style_emoticons/default/smile.gif) Kiedyś pracowałem przy rozbudowie jednego z większych portali obrazkowych w USA i widziałem identyczny kwiatek. Więc to nie jest domena tylko tych młodszych programistów i tylko tych mniejszych projektów (IMG:style_emoticons/default/wink.gif) Ten post edytował sowiq 15.01.2013, 09:44:10 |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%)
|
Oczywiście, że to zalecenie projektowe, nikt Ci przecież nie każe na siłę tak robić. Ale jest to zalecenie dotyczące bezpieczeństwa. I nie chodzi tu o to, że "atakującemu" będzie trudniej wysłać takie zapytanie, bo to akurat pryszcz. Chodzi o XSS, o którym wspomniałem wcześniej. Jak na Twojej stornie masz jakąś dziurę pozwalającą na XSS, której nie zauważyłeś i ktoś doda Ci taki obrazek jak poniżej, to masz mały problem.
Chodzi o to, że zapytania POST nie da się wygenerować za pomocą prostego XSS. Musiałaby to być mega dziura pozwalająca na dodanie JS (IMG:style_emoticons/default/smile.gif) [edit] Kiedyś pracowałem przy rozbudowie jednego z większych portali obrazkowych w USA i widziałem identyczny kwiatek. Więc to nie jest domena tylko tych młodszych programistów i tylko tych mniejszych projektów (IMG:style_emoticons/default/wink.gif) Kluczem problemu nie jest XSS a CSRF, którego w żaden sposób nie zabezpieczy to, że akceptujemy tylko requesty POST. (Bardzo łatwo wykonać "automatycznego" POSTA - wystarczy jedna linijka JSa ;-) ) Mała autoreklama - więcej info na: http://tinyurl.com/boqerob ;-) |
|
|
|
Sephirus Najczęstsze błędy w PHP i antywzorce 14.01.2013, 12:57:18
aras785 @Sephirus pisz również poprawne formy, ponieważ we... 14.01.2013, 13:01:14
!*! Formatowanie kodu też to obejmuje?
Temat: Najczes... 14.01.2013, 13:10:29
nospor Cytata raczej złe nawykigłupota i lenistwo.... dwa... 14.01.2013, 13:39:09
Sephirus @aras785 Twój kod nadal jest dla mnie nie zrozumia... 14.01.2013, 13:50:43
nospor CytatNa głupotę nie ma rady ;P ale nie mogę zakład... 14.01.2013, 14:02:14
Sephirus Ok przyznam szczerze... z tym drzewkiem... że bym ... 14.01.2013, 14:09:27
pyro Tyle jest błędów i nieprawidłowych konstrukcji pop... 14.01.2013, 14:09:52
nospor No i cała masa złego porównywania typów, nie rozró... 14.01.2013, 14:12:51
pyro Ja do najgłupszych błędów, który popełniłem 30 sek... 14.01.2013, 14:14:17
nospor No i najważniejsze zło, jakie robią zarówno począt... 14.01.2013, 14:16:41 
pyro Cytat(nospor @ 14.01.2013, 14:16:41 )... 14.01.2013, 14:24:10
Sephirus @pyro Masz całkowitą rację niestety - to jest ... 14.01.2013, 14:21:57
nospor własnie w dziale przedszkole pojawił się problem z... 14.01.2013, 14:23:12
nospor CytatCzym może to być spowodowane że rzadko to lud... 14.01.2013, 14:27:57 
pyro Cytat(nospor @ 14.01.2013, 14:27:57 )... 14.01.2013, 14:30:35
Tuminure Znajomość różnicy między && i AND, a także... 14.01.2013, 14:31:30
nospor CytatNo to nie dopowiedziałeś i można było bardzo ... 14.01.2013, 14:34:02
Sephirus Co do errorów to prawda... ale to jest celowe jakb... 14.01.2013, 14:39:15
nospor CytatU mnie w firmie jak raz włączyliśmy na główny... 14.01.2013, 14:43:48
Sephirus Zgadzam się w 100%, niestety z takimi starymi byta... 14.01.2013, 14:46:42
thek Ja przykładowo dzięki przeglądaniu kodów innych, p... 14.01.2013, 14:56:41
Tuminure Cytat2+3*4 nie jest równe 20
Aż mi się przypomniał... 14.01.2013, 14:58:37
Sephirus @thek Tak ta "inwersja" jeśli chodzi o k... 14.01.2013, 14:59:35 
sowiq Cytat(Sephirus @ 14.01.2013, 14:59:35... 14.01.2013, 15:10:13
redeemer W większości wypadków jako operator porównania lep... 14.01.2013, 15:08:49
Sephirus CytatMój kolega powiedział kiedyś bardzo trafne po... 14.01.2013, 15:16:10
thek @sowIq: co innego gdy korzystasz z Fw, a co innego... 14.01.2013, 16:00:27
Sephirus W sumie popieram przedmówcę ale (za pewne to babol... 14.01.2013, 16:10:56
sowiq @thek, a co ma zasięg zmiennych do ilości i zagnie... 14.01.2013, 16:14:57
Tuminure Wychodziłem akurat z pracy, więc nie dokończyłem p... 14.01.2013, 16:34:12
Sephirus Facepalm. ok @Tuminure masz całkowitą rację, od zu... 14.01.2013, 16:46:15
thek @sowiq: Przy złożonym kodzie bardzo łatwo się pogu... 14.01.2013, 22:13:48 
sowiq Cytat(thek @ 14.01.2013, 22:13:48 ) T... 14.01.2013, 23:21:42
Pilsener Najgorsze są dla mnie błędy związane z wydajnością... 14.01.2013, 23:09:36
Sephirus @thek Rozumiem - ma to duży sens bo kod jest fakty... 15.01.2013, 09:02:05 
sazian Cytat(Pilsener @ 14.01.2013, 23:09:36... 15.01.2013, 22:48:22
thek W przypadku XSS czy nie, zawsze się userowi robi ... 15.01.2013, 13:14:20 
sowiq Cytat(thek @ 15.01.2013, 13:14:20 ) P... 15.01.2013, 14:14:48
O$iek Co to znaczy "hydrować"? 15.01.2013, 13:59:01
Sephirus "hydrować" oznacza w jaki sposób zwracać... 15.01.2013, 14:09:30 
O$iek Cytat(Sephirus @ 15.01.2013, 14:09:30... 15.01.2013, 15:03:09
Sephirus Cytat(sowiq @ 15.01.2013, 14:14:48 ) ... 15.01.2013, 14:48:10
pamil + do wykonania CSRF wcale nie potrzebujemy dziury ... 15.01.2013, 23:17:48
Lysiur Wiecie co, od samego początku powstania tego temat... 16.01.2013, 00:55:39
Sephirus @pamil Masz rację - tak jak wcześniej pisałem CSRF... 16.01.2013, 09:04:03
!*! Przypomniała mi się rzecz która zdarza się dość cz... 16.01.2013, 11:11:26
CuteOne @Lysiur pomysł dobry ale..
- nie było by żadnej ko... 16.01.2013, 13:16:26
Lysiur @CuteOne: Niestety muszę się z Tobą zgodzić. Prawd... 16.01.2013, 15:40:24 
sowiq Cytat(Lysiur @ 16.01.2013, 15:40:24 )... 16.01.2013, 16:29:13
amii Jeśli już jesteśmy przy JS to warto wspomnieć o do... 16.01.2013, 19:13:13 
ano Cytat(amii @ 16.01.2013, 19:13:13 ) A... 17.01.2013, 19:22:17
sazian Cytat(amii @ 16.01.2013, 19:13:13 ) T... 16.01.2013, 19:41:47 
pyro Cytat(sazian @ 16.01.2013, 19:41:47 )... 16.01.2013, 22:01:40
!*! Poprawne ścieżki chyba jeszcze nie zostały wymieni... 17.01.2013, 09:59:53
!*! @up czyli jak mam odebrać te wyniki, bo nie za bar... 18.01.2013, 11:35:50 
ano Cytat(!*! @ 18.01.2013, 11:35... 18.01.2013, 17:04:03
skowron-line - Kod bez komentarzy to zuo, o tym trzeba pisać to... 18.01.2013, 12:39:55
!*! @up to są wyniki funkcji z linku jaki podałeś. 18.01.2013, 18:01:46
redeemer !*!: Ten "test" jest nierzetelny... 18.01.2013, 19:30:56
ano @redeemer - o, kolejna rzecz którą można dopisać d... 18.01.2013, 19:41:26
!*! redeemer - może i powinno to nie jest istotne, obo... 18.01.2013, 20:19:28
ano CytatTak, jest APC czy inne wspomagacze, ale to ni... 18.01.2013, 20:29:39
!*! To nie było porównanie. Granice błędu statystyczne... 18.01.2013, 20:35:10
ano Żeby nie było, małe podsumowanie:
Oczywiście najle... 18.01.2013, 21:13:32
!*! Cytat(ano @ 18.01.2013, 21:13:32 ) Je... 19.01.2013, 14:04:44 ![]() ![]() |
|
Aktualny czas: 27.11.2025 - 15:32 |