Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM    Subskrybuj kanał ATOM dla tagu zend_framework Kanał ATOM (tag: zend_framework)

Autor wpisu: matipl, dodany: 11.11.2015 09:30, tagi: php, zend_framework

Who use Zend Framework? W 2012 roku pisałem o podobnej dziurze w Zend Framework. Niestety historia się powtarza i wszelkie wersje Zend Framework włącznie do 2.4.2 oraz 1.12.13 są podatne na atak XXE (XML eXternal Entity Injection), jeśli na przykład wykorzystujecie ZF jako serwer XML-RPC.

Dokładny opis problemu opisał Dawid Goluński już w sierpniu. Problem jednak w tym, że obecnie z dwóch dużych frameworków dla PHP (Zend Framework i Symfony) nie korzystają tylko twórcy dedykowanych aplikacji. I jeśli nawet nie korzystamy bezpośrednio z tych frameworków, możemy korzystać z rozwiązań, które wykorzystują pośrednio ZF lub Sf. W dzisiejszych czasach musimy mieć oczy dookoła głowy, ponieważ producent (np. Drupal, Magento) może w porę nie zauważyć problemu.

Z powodu luki XXE w ZF problemy mają chociażby osoby korzystające z Magento. 27 października 2015 (prawie 3 miesiące po załataniu w ZF!) został opublikowany patch bezpieczeństwa SUPEE-6788, który rozwiązuje m.in. problem XXE/XEE attack on Zend XML functionality using multibyte payloads.

Zastanawiacie się zapewne co może się Wam stać poprzez taką małą dziurę? Ano możecie zarazić swój serwer ransomware’m Linux.Encoder.1 (napisany w C). A ten sprytny robak, który potrafi wykorzystać wspomnianą lukę XXE w ZF, szyfruje wszelkie nasze dane (np. /home, /root, /var/lib/mysql). Następnie żąda od nas okupu za klucz odszyfrowujący.

Dlatego, jeśli nie aktualizowaliście ZF w swoich aplikacjach od kilku miesięcy, warto przysiąść i wprowadzić odpowiednie zmiany.

Artykuł Dziura w Zend Framework i Linux.Encoder.1 pochodzi z serwisu Mateusz matipl Kamiński.

Autor wpisu: batman, dodany: 03.12.2014 12:30, tagi: php, zend_framework

Korzystając z usług sieciowych często spotykamy się z Basic Auth jako metodą zabezpieczającą dostęp do zasobów. W przypadku Zend Frameworka klientem REST jest Zend_Rest_Client, który nie ma wbudowanej obsługi Basic Auth. Na szczęście istnieje coś takiego jak Zend_Http_Client, który rozwiązuje ten problem.

Jeśli API, z którego korzystamy, wymaga od nas podania loginu i hasła, wystarczy, że ręcznie ustawimy klienta http, który obsługuje Basic Auth. Zacznijmy od klienta REST.

$client = new Zend_Rest_Client();
$client->setUri('uri_uslugi');

Mając utworzony obiekt klienta REST, tworzymy klienta http oraz przekazujemy mu dane autoryzacyjne.

$httpClient = new Zend_Http_Client();
$httpClient->setAuth('username', 'password');

Na koniec wskazujemy klientowi REST, że będziemy korzystali z niestandardowego klienta http oraz wysyłamy request w celu autoryzacji naszego klienta REST.

$client->setHttpClient($httpClient);
$response = $client->restGet('zasob');

W ten oto prosty sposób dokonaliśmy autoryzacji Basic Auth w Zend_Rest_Client.

Autor wpisu: zleek, dodany: 04.08.2014 09:44, tagi: php, zend_framework

Gdy tworzymy dokumenty z wykorzystaniem Zend_Pdf czasami wygodniej jest wykorzystać istniejący szablon w formacie pdf (będący np. papierem firmowym), niż budować cały dokument ręcznie. Zend Framework daje nam narzędzie, które pozwala szybko i bezproblemowo zamieścić nasz szablon na wszystkich stronach dokumentu. Można to zrobić nastepującym kodem: Powyżej znajduje się przykład dodanie pojedynczej strony wykorzystującej szablon. […]

Autor wpisu: zleek, dodany: 27.01.2014 14:12, tagi: php, zend_framework

Pracując przy ostatnim projekcie bazującym na Zend Framework 2 napotkałem dziwny błąd. Mianowicie dla pól formularza, które miały atrybut required miały ustawiony na true, nie mogłem ustawić własnego komunikatu błędu. Pomimo tego, że walidator dla tego pola ustawiony w InputFilter, wyglądał na prawidłowy, wyświetlana była domyślna wartość komunikatu błędu. Okazało się, że problem nie leżał […]

Autor wpisu: zleek, dodany: 18.12.2013 13:27, tagi: php, zend_framework

Podczas generowania dokumentów Pdf przy wykorzystaniu komponentu Zend_Pdf z Zend Framework możne spotkać problem związany z zamieszczaniem w dokumencie długiego tekstu. Z pomocą może tutaj przyjść poniższa metoda, która przyjmując kilka parametrów załatwi za nas całą sprawę automatycznie. Jako parametry metoda ta przyjmuje przede wszystkim obiekt Zend_Pdf_Page, na którym obecnie pracujemy oraz treść $text, którą […]

Autor wpisu: zleek, dodany: 26.09.2013 14:31, tagi: php, zend_framework

Dodawanie kolejnej wersji językowej do sklepu opartego o Magento przedstawię na przykładzie wersji angielskiej. Zakładam, że mamy dostępną podstawową instancję sklepu w języku polskim ze zdefiniowaną główną kategorią sklepu. Pierwszym krokiem jest zalogowanie się do Panelu administracyjnego. Z górnego menu wybieramy “System > Manage stores” Klikamy przycisk “Create Website” Wprowadzamy nazwę strony np. “Angielski”, przypisujemy […]

Autor wpisu: Marek, dodany: 20.03.2013 11:35, tagi: php, zend_framework

PhpExcel

PHPExcel to ciekawa biblioteka, która umożliwia generowanie / odczytywanie arkuszy kalkulacyjnych. Obsługiwane formaty to m.in. Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML… Projekt  zbudowany jest wokół standardu OpenXML Microsoftu.

Poniżej krótka instrukcja integracji PHPExcel z projektem napisanym z Zend Framework

1. Pobieramy najnowszą wersję biblioteki ze strony: http://phpexcel.codeplex.com/

2. W katalogu library naszego projektu umieszczamy:

  • katalog PHPExcel
  • plik PHPExcel.php

3. W pliku konfiguracyjnym application.ini dodajemy wpisy dla autoloadera:

autoloaderNamespaces[] = "PHPExcel_"
autoloaderNamespaces[] = "PHPExcel"

I już możemy rozpocząć pracę z PHPExcel. Autoloader będzie pamiętał o załadowaniu odpowiednich klas za nas. Przykłady użycia biblioteki wkrótce.

Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.