Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [zend] zend a bezpieczenstwo
Forum PHP.pl > Forum > PHP > Frameworki
nieraczek
Jak wygląda bezpieczeństwo w ZF - tak samo jak w zwykłym PHP trzeba kontrolować dane wprowadzane przez użytkownika do bazy danych ? A może funkcje ZF takie jak insert() czy update() mają już wbudowane mechanizmy bezpieczeństwa ?
plurr
Zend swoja biblioteke Zend_Db opiera o PDO, wiec jakies bezpieczenstwo jest. Mozesz takze walidowac dane formularzy poprzez Zend_Form.
batman
Dane trzeba zawsze kontrolować. Ale ZF znacznie to ułatwia. Wspomniany wcześniej Zend_Db zabezpiecza dane przekazywane do bazy. Do tego dochodzi jeszcze Zend_Filter, który filtruje dane, Zend_Validate do walidacji danych oraz Zend_Captcha o wiadomym zastosowaniu.
nieraczek
Czyli stosując funkcje ZF: insert() czy update() nie muszę już korzystać z funkcji wstawiających \ przed podejrzanymi znakami ?

I drugie pytanie - zauwazylem czeste stosowanie w ZF z $this->escape() - czy ta funkcja usuwa znaki \ z danych pobieranych z bazy danych ?
batman
Cytat
Czyli stosując funkcje ZF: insert() czy update() nie muszę już korzystać z funkcji wstawiających \ przed podejrzanymi znakami ?
Nie musisz. Zobacz jak to wygląda na przykładzie. Kluczem jest nazwa pola w tabeli, wartością dana, jaka będzie wstawiona do tabeli. Zend_Db zadba o bezpieczeństwo.

Cytat
I drugie pytanie - zauwazylem czeste stosowanie w ZF z $this->escape() - czy ta funkcja usuwa znaki \ z danych pobieranych z bazy danych ?
To jest helper widoku, którego jeszcze nie używałem. Jakoś nie miałem potrzeby winksmiley.jpg Dokumentacja zaleca używanie tego helpera za każdym razem, jak wyświetla się dane, które pochodzą z niebezpiecznego źródła. Helper ten wykorzystuje funkcję htmlspecialchars do usuwania niebezpiecznych danych, jednak nic nie stoi na przeszkodzie, by napisać własny helper do zabezpieczenia danych. Poza tym helper escape można tak skonfigurować, by wykorzystywał inne funkcje. Wszytko znajdziesz w dokumentacji.
Wracając do pytania. Funkcja ta nie usuwa znaków \
nieraczek
Dzięki, jak rozumiem select() i query() również są bezpieczne, np.:
  1. <?php
  2. query("SELECT * FROM obrazy WHERE tytul LIKE '%$dane%'");
  3. ?>

gdzie $dane to wyrazenie podane przez uzytkownika nie wymaga już kontrolowania ?
batman
Nie. To nie jest bezpieczne. W przypadku select możesz użyć znaku zapytania w klauzuli where, a następnie przypisać do tego znaku zapytania odpowiednią zmienną. Dopiero wtedy będzie to bezpieczne. Więcej informacji znajdziesz w dokumentacji.
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.