Marcin Huta

Marcin Huta IT Developer,
Performance Testing,
Administrator
systemów IT

Temat: Zabezpieczenie pola?

Potrzebuje pomocy w dodaniu skryptu, zabezpieczające pole formularza. Chodzi o to, aby podczas wpisywania danych w formularzu przekazywanym do mySQLa, można tak ustawić parametry, które są wymagane, zaś w momencie wpisania innego ciągu znaków niż wymagane w procesie. Z góry dziękuje za pomoc.

konto usunięte

Temat: Zabezpieczenie pola?

polecam poczytac o regular expressions...
temat rzeka...

Na poczatek znajdz sobie na necie funkcje makeSafe dla PHP i sie upewnij by kazda zmienna ktora idzie do bazy danych najpierw przez nia przechodzila.
Marcin Huta

Marcin Huta IT Developer,
Performance Testing,
Administrator
systemów IT

Temat: Zabezpieczenie pola?

Andrzej, Dziękuje za odp. Poszukam po necie i zobaczymy co wyjdzie.

konto usunięte

Temat: Zabezpieczenie pola?

Zamiast kombinować z jakimiś dziwnymi funkcjami filtrującymi to można użyć PDO i prepared statements.Kamil Brenk edytował(a) ten post dnia 12.08.10 o godzinie 11:08

konto usunięte

Temat: Zabezpieczenie pola?

regexpy są bardzo fajne, Marcinie ;)
i wielce przydatne.

http://www.google.pl/search?hl=pl&source=hp&q=kurs+reg...

konto usunięte

Temat: Zabezpieczenie pola?

http://pl2.php.net/filter - praktycznie 100% odpowiedz na pytanie : - )
Tomasz Zadora

Tomasz Zadora programuję

Temat: Zabezpieczenie pola?

Zdarzają się jednak sytuacje, że PDO nie jest zainstalowane, nie zawsze jest w danym projekcie do dyspozycji cały serwer dedykowany lub VPS, gdzie można sobie konfigurować PHP, tylko jakiś pośledniejszy hosting.

Czyli, w sytuacji jak mamy funkcje "mysql_*" a nie "mysqli_*", wtedy, zanim wstawimy coś do bazy, skasujemy, lub wybierzemy warto daną wartość przefiltrować przez funkcję http://php.net/manual/pl/function.mysql-escape-string.php lub http://php.net/manual/pl/function.mysql-real-escape-st... - ta druga jest lepsza.Tomasz Zadora edytował(a) ten post dnia 13.08.10 o godzinie 01:14

konto usunięte

Temat: Zabezpieczenie pola?

Tomasz Zadora:
Zdarzają się jednak sytuacje, że PDO nie jest zainstalowane, nie zawsze jest w danym projekcie do dyspozycji cały serwer dedykowany lub VPS, gdzie można sobie konfigurować PHP, tylko jakiś pośledniejszy hosting.

Czyli, w sytuacji jak mamy funkcje "mysql_*" a nie "mysqli_*", wtedy, zanim wstawimy coś do bazy, skasujemy, lub wybierzemy warto daną wartość przefiltrować przez funkcję http://php.net/manual/pl/function.mysql-escape-string.php lub http://php.net/manual/pl/function.mysql-real-escape-st... - ta druga jest lepsza.Tomasz Zadora edytował(a) ten post dnia 13.08.10 o godzinie 01:14
mysqli jest domyślnie wbudowane od PHP 5.0, PDO od wersji PHP 5.1, filter od PHP 5.2. Jeśli ktoś ma na hostingu nadal PHP 4 to niech zmieni hosting.
Marcin Huta

Marcin Huta IT Developer,
Performance Testing,
Administrator
systemów IT

Temat: Zabezpieczenie pola?

Dziękuje za wszelkie uwagi i sugestie, które będę testował podczas pisania kodu. Przy okazji jeszcze zapytam o mechanizmy logowania. Jakieś sprawdzone przykłady? schemat działania: Zalogowanie -> Wykonanie akcji np. dodanie wpisu na stronie -> wylogowanie.
Tomasz Zadora

Tomasz Zadora programuję

Temat: Zabezpieczenie pola?

mysqli jest domyślnie wbudowane od PHP 5.0, PDO od wersji PHP 5.1, filter od > PHP 5.2. Jeśli ktoś ma na hostingu nadal PHP 4 to niech zmieni hosting.

Powiedz to klientowi który ma stary duży system na PHP 4 i nie chce płacić za jego przerobienie na php 5 :) Myślisz, że zapłaci 20 tys tylko po to żeby mieć "jakieś" PDO ? ;-)

Natomiast przyznaje, że nie wiedziałem iż PDO jest domyślnie instalowane w 5tce, bo zwyczajnie z niego nie korzystam - daje za mało możliwości, jeżeli chodzi o zaawansowane funkcje w MySQL, wolę korzystać z samego mysqli.Tomasz Zadora edytował(a) ten post dnia 13.08.10 o godzinie 11:05
Tomasz Zadora

Tomasz Zadora programuję

Temat: Zabezpieczenie pola?

Marcin Huta:
Dziękuje za wszelkie uwagi i sugestie, które będę testował podczas pisania kodu. Przy okazji jeszcze zapytam o mechanizmy logowania. Jakieś sprawdzone przykłady? schemat działania: Zalogowanie -> Wykonanie akcji np. dodanie wpisu na stronie -> wylogowanie.

Możesz np. stworzyć sobie klasę obsługującą logowanie, do ponownego używania w kolejnych projektach.

Klasa może posiadać takie właściwości jak nazwa tabeli SQL na dane użytkowników, nazwy kolumn przechowujące login/hasło, znacznik czy użytkownik ma prawo się zalogować (konto zablokowane: nie/tak), czy potwierdził rejestrację etc.

Proste metody typu:

logIn(userName, password, connection) - zalogowanie, po udanym dodanie do sesji PHP znacznika, że użytkownik jest zalogowany (+ np. klucz podstawowy z tabeli)
logOut() - wylogowanie
isLoggedIn() - odpowiada na pytanie czy użytkownik jest zalogowany (sprawdza sesję)
getDataFromDB(connection) - pobranie aktualnych danych użytkownika z tabeli SQL na użytkowników

etc. Można to rozbudowywać, można zrobić inaczej.

konto usunięte

Temat: Zabezpieczenie pola?

Tomasz Zadora:
Powiedz to klientowi który ma stary duży system na PHP 4 i nie chce płacić za jego przerobienie na php 5 :) Myślisz, że zapłaci 20 tys tylko po to żeby mieć "jakieś" PDO ? ;-)
PHP 5 ma zapewnioną zgodność wsteczną. Możemy więc mieć serwis napisany w oparciu o PHP 4 i uruchomić go na PHP 5, dodając funkcjonalność z PHP 5 (filter, pdo). Dopiero od PHP 5.3 zaczyna być olewana zgodność wsteczna (na szczęście), o czym ostatnio trochę się mówiło.
Tomasz Zadora

Tomasz Zadora programuję

Temat: Zabezpieczenie pola?

Kamil Brenk:

PHP 5 ma zapewnioną zgodność wsteczną. Możemy więc mieć serwis napisany w oparciu o PHP 4 i uruchomić go na PHP 5, dodając funkcjonalność z PHP 5 (filter, pdo). Dopiero od PHP 5.3 zaczyna być olewana zgodność wsteczna (na szczęście), o czym ostatnio trochę się mówiło.

Niestety to nie jest prawda, wiele funkcji w PHP 5 działa inaczej niż w PHP 4. Nie ma 100% zgodności.

Przykład dyskusji na ten temat:

http://www.webmaster-talk.com/php-forum/78717-differen...

Słowa kluczowe do google na ten temat: "php 4 php 5 differences"

PS. proponuje nie kontynuować offtopa.Tomasz Zadora edytował(a) ten post dnia 13.08.10 o godzinie 16:02

konto usunięte

Temat: Zabezpieczenie pola?

Tomasz Zadora:
Kamil Brenk:

PHP 5 ma zapewnioną zgodność wsteczną. Możemy więc mieć serwis napisany w oparciu o PHP 4 i uruchomić go na PHP 5, dodając funkcjonalność z PHP 5 (filter, pdo). Dopiero od PHP 5.3 zaczyna być olewana zgodność wsteczna (na szczęście), o czym ostatnio trochę się mówiło.

Niestety to nie jest prawda, wiele funkcji w PHP 5 działa inaczej niż w PHP 4. Nie ma 100% zgodności.

Przykład dyskusji na ten temat:

http://www.webmaster-talk.com/php-forum/78717-differen...

Słowa kluczowe do google na ten temat: "php 4 php 5 differences"

PS. proponuje nie kontynuować offtopa.Tomasz Zadora edytował(a) ten post dnia 13.08.10 o godzinie 16:02
Tak, wiadomo, że PHP4 działa inaczej niż PHP5 - dodano wiele nowych funkcji, poprawiono obiektówkę, zintegrowano kilka bibliotek PECL z silnikiem PHP, zrobione jeszcze sto innych rzeczy.

Niemniej jednak jest zapewniona zgodność wsteczna i wszystko to co w PHP4 działało, powinno też zadziałać w PHP5.

Pozdrawiam
Tomasz Zadora

Tomasz Zadora programuję

Temat: Zabezpieczenie pola?

Widzisz, nie czytałeś artykułu na forum do którego dałem link wcześniej:

"PHP5 for the most part is backwards compatible with PHP4, but there are a couple key changes that might break your PHP4 script in a PHP5 environment."

albo:

"The above code fragment was common in PHP4. If you needed to duplicate an object, you simply copied it by assigning it to another variable. But in PHP5 you must use the new clone keyword."

Upierasz się przy swoim (nie ma to jak iść w zaparte), zapewne też nigdy nie przerabiałeś większego systemu PHP 4 na PHP 5.

Dla mnie to koniec dyskusji :)Tomasz Zadora edytował(a) ten post dnia 13.08.10 o godzinie 16:52

konto usunięte

Temat: Zabezpieczenie pola?

Tomasz Zadora:
Widzisz, nie czytałeś artykułu na forum do którego dałem link wcześniej:

"PHP5 for the most part is backwards compatible with PHP4, but there are a couple key changes that might break your PHP4 script in a PHP5 environment."

albo:

"The above code fragment was common in PHP4. If you needed to duplicate an object, you simply copied it by assigning it to another variable. But in PHP5 you must use the new clone keyword."

Upierasz się przy swoim (nie ma to jak iść w zaparte), zapewne też nigdy nie przerabiałeś większego systemu PHP 4 na PHP 5.

Dla mnie to koniec dyskusji :)Tomasz Zadora edytował(a) ten post dnia 13.08.10 o godzinie 16:52
Cokolwiek nie powiesz kolego... dla niektórych to będzie problemem, dla innych to żaden problem :-) ale co ja tam mogę wiedzieć, jestem młody i się nie znam - nie przerabiałem większego systemu PHP 4 na PHP 5. :-)

Również pozdrawiam.



Wyślij zaproszenie do