2012-10-25 3 views
9

staram się wybierać ramy, która zapewnia bardzo dobrą ochronę aplikacji internetowych, chroni przed tyle OWASP TOP-10, jak to możliwe, takie jak:Dobry frameworkiem silnego bezpieczeństwa

  • SQL Injection
  • XSS
  • CSRF
  • Authentication
  • Autoryzacja
  • itp

rzeczą jest Próbowałem badania naprawdę ciężko: CakePHP, Zend, Yii, codeigniter, Kohana, a niektóre mają podstawowe uwierzytelnianie, autoryzację może trochę, ale nic dla każdej aplikacji, która potrzebuje solidnego kodu-Security .

Czy większość typów słabych punktów powyżej zabezpieczonych jest obecnie tylko przy użyciu niestandardowego kodu w tych ramach?

To jest moje pierwsze doświadczenie z używaniem frameworków, wszystko do tej pory było niestandardowe aplikacje webowe php. Cała moja myśl o php-frameworkach miała być łatwa, aby uchronić się przed tymi lukami, biorąc pod uwagę, że nie jest to natywnie, po co używać? A może istnieje struktura, której nie szukam, która jest lepsza niż te wymienione powyżej w celu zapewnienia silnej ochrony aplikacji internetowych? Dzięki

+1

Na koniec dnia zabezpieczysz swoją aplikację. Naprawdę nie ma czegoś takiego jak automatyczne bezpieczeństwo. –

+0

Codeigniter ma wbudowane wtryskiwanie, XSS, CSRF. Uwierzytelnienie i autoryzacja są w pewnym sensie specyficzne dla aplikacji, więc napisanie biblioteki na ich pokrycie byłoby prawie bezcelowe, prawda? –

+0

Wiem, że nie jest automatyczny, ale ramy jest tam wsparcie ... – CodeTalk

Odpowiedz

12

Zabezpieczeń nie można zastosować do aplikacji, takich jak niektóre okleiny.Każdy rodzaj problemu bezpieczeństwa jest uregulowana w inny sposób, a większość z ram PHP dostarczenie narzędzi do pisania bezpiecznego kodu:

  • Walka zastrzyk HTML/XSS wymaga użycia silnika szablonów (jak Gałązka) domyślnie unika wartości lub podejście komponentu do wyświetlania HTML. Żadne ramy nie pomogą, jeśli zezwolisz innym na przesyłanie plików i będą one obsługiwane z Twojej własnej domeny (musisz użyć do tego oddzielnej domeny );

  • Można uniknąć iniekcji SQL za pomocą pomocników db, które unikają parametrów zapytania ; każda struktura, o której wspomniałeś, zapewnia te (i Oczywiście, że możesz używać zwykłego PDO);

  • Możesz walczyć z CSRF za pomocą tokenów związanych z sesją. Każdy framework oferuje pewne rozwiązanie. Jednak w każdym przypadku musisz w jakiś sposób pomóc w opracowaniu struktury (przez dodanie tokena do każdego formularza lub użycie abstrakcji formularza dostarczonej przez framework).

W pewnym sensie - tak, trzeba myśleć o bezpieczeństwie. Nie sądzę, żeby jakakolwiek struktura PHP mogła zrobić coś więcej niż to, co już robią, chyba że istnieje duża zmiana paradygmatu, która pozwala nam projektować aplikacje, przeciągając kolorowe pola na ekranie, nie dotykając brudnych, niepewnych rzeczy, takich jak HTML czy SQL. Jakiego rodzaju wsparcia oczekujesz?

+0

Świetny komentarz i jedzenie do przemyślenia tutaj fdreger! Dzięki! – CodeTalk

+0

Witaj fdreger, jak się masz? Mam nadzieję, że wszystko w porządku =) czy mogę się z tobą skontaktować? Naprawdę potrzebuję twojej pomocy, jeśli nie masz nic przeciwko niektórym problemom php =) powiedz mi, jak najlepiej Ci się skontaktować =) –

1

Kluczowe luki, o których wspomniałeś, pojawiają się w różnych, a czasem wielu warstwach i często zależą od kontekstu, w którym to robisz, więc wiele z nich oferuje urządzenia do ochrony przed tymi rzeczami, ale musisz z nich skorzystać .

Na przykład zarówno Symfony (1.x i 2), jak i Zend Framework mają komponent/podstrukturę formularza, które implementują CSRF po wyjęciu z pudełka. Ale to nie znaczy, że jest włączone domyślnie (symfony to ... nie pamiętam, czy ZF jest, czy nie). To samo z XSS, gdy mówimy o wyjściu wychodzącym z boku w warstwie widoku.

Teraz, jeśli chodzi o preferencje ram dla dużych aplikacji, osobiście lubię Symfony 1.x i Symfony2, Zend Framework 1.x (nie wspomnę o Zf2, ponieważ jeszcze nie grałem z nim). Dla prostych rzeczy lubię Silex (oparty na Symfony Components).

8

Powiedziałbym również, wypróbuj CodeIgniter.

także CodeIgniter jest łatwy w użyciu, jeśli pracujesz z ramy po raz pierwszy i ma świetny podręcznik użytkownika, który jest bardzo łatwy do zrozumienia.

+0

Gdybym zobaczył twoją odpowiedź wcześniej, dałbym jej czek :) Myślę, że zamierzam przetoczyć się z codeigniteriem :) – CodeTalk

+0

Anywho, dobry post! @ – CodeTalk

+0

Witaj Evo, jak się masz? Mam nadzieję, że wszystko w porządku =) czy mogę się z tobą skontaktować? Naprawdę potrzebuję twojej pomocy, jeśli nie masz nic przeciwko niektórym problemom php =) powiedz mi, w jaki sposób wolisz się skontaktować =) –