ForumCała strona

Nawigacja

Aktualnie online

Gości online: 8

Użytkowników online: 0

Łącznie użytkowników: 25,405
Najnowszy użytkownik: kipolas

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

JazOOn
25.06.2025 23:43:19
Dziadziejemy jantom...

jantom
23.06.2025 21:37:31
Z ciekawo?ci pogrzeba?em w historii i jest gorzej ni? my?la?em. Skórka Nadzieja ma ju? 17 lat.

jantom
23.06.2025 21:33:12
... troch? zasiedzia?o Wink

jantom
23.06.2025 21:32:38
Cecha tego, jak z 20+ lat temu pisano strony - tabelki wsz?dzie, szczególnie do tworzenia uk?adów stron. PF d?ugo by? wierny tej tradycji. A obecny szablon Supportu napisa?em z 15 lat temu i chyba mu

Zbigniew@
22.06.2025 17:50:03
Dlaczego forum jest dost?pne tylko dla 10% ludzi? Poniewa? wi?kszo?? osób korzysta z internetu na urz?dzeniach mobilnych.

Pobierz now? wersj?
Pobierz podr?cznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Nawigacja

Jak pisa? bezpieczne MOD'y i INFUSION'y

Napisane przez Wooya dnia 08 kwietnia 2007 15:57 · 4 komentarze · 9251 czytań · Drukuj · Facebook · Wykop

Streszczenie:

Krótki instruktarz dla bardziej twórczych ;)

Wiemy, ?e bezpiecze?stwo PHP-Fusion jest spraw? bardzo wa?n? (np. odporno?? na ataki XSS, SQL Injection, DoS). Chc? tutaj opisa? jak pisa? bezpieczne modu?y i infusiony przy u?yciu funkcji ogólnie dost?pnych w core (j?drze) PHP-Fusion.

1) prawa u?ytkowników:
aby sprawdzi? poziom u?ytkownika (level) u?ywaj wbudowanych sta?ych: iGUEST, iUSER, iMEMBER, iADMIN, iSUPERADMIN, iUSER_RIGHTS, iUSER_GROUPS i funkcji sprawdzaj?cych checkrights(), getuserlevel(), checkgroup(), groupaccess().
Nie próbuj napisa? swoich w?asnych, "lepszych" procedur ;)

2) zapytania MySQL:
zawsze u?ywaj wbudowanych PHP-Fusion funkcji obs?ugi bazy MySQL, aby wykonywa? swe kwerendy:
- dbquery() - aby wys?a? zapytanie
- dbrows() - aby pobra? ilo?? dost?pnych wierszy w wyniku
- dbcount() - aby policzy? ilo?? danych w wyniku
- dbresult() - aby pobra? wynik
- dbarray() - aby pobra? dane do tablicy asocjacyjnej
- dbarraynum() - aby pobra? konkretny wiersz z wyniku

W wi?kszo?ci przypadków te funkcje s? wystarczaj?ce do obs?ugi Twojej bazy danych.

NOTKA: Pami?tajcie, aby optymalizowa? swoje zapytania do bazy! Serwery niezbyt kochaj? tysi?ce kwerend przy jednym prze?adowaniu strony ;)

3) zmienne serwera $_POST i $_GET:
- zawsze pami?taj, aby usuwa? potencjalnie z?o?liwe dane PHP i HTML z przesy?anych ci?gów przy pomocy funkcji stripinput(), np.:



Ta funkcja zamienia wszystkie potencjalnie niebezpieczne HTML'owe znaki na ich symboliczne odpowiedniki.

- je?eli przesy?ana zmienna POST/GET powinna by? numeryczna, to do sprawdzenia tego u?ywaj funkcji isNum(). Je?eli przesy?ana warto?? numeryczna jest niezb?dna do wstawienia do tabeli, to u?ywaj kodu sprawdzaj?cego jak np. poni?ej:



w innym wypadku:



- nigdy nie wysy?aj poprzez zmienn? ?rodowiskow? GET wa?nych danych takich jak has?a!

- staraj si? operowa? na bazie danych poprzez poja ID (numeryczne). O wiele pro?ciej sprawdzi? bezpiecze?stwo parametru je?eli jest warto?ci? numeryczn? ni? tekstow? (przez funkcje isNum()). Parsowanie ci?gów tekstowych wymaga dobrej znajomo?ci funkcji ekspresyjnych PCRE.

4) inne problemy:
- zawsze umieszczaj na wst?pie swojego infusiona administracyjnego nast?puj?cy kod:


- zawsze umieszczaj na wst?pie swojego panelu nast?puj?cy kod:


- zawsze umieszczaj nast?puj?cy kod na wst?pie swoich include'ów:


- zawsze weryfikuja upload'owane obrazki poprzez funkcj? verify_image(). Pami?taj, ?e niektóre przegl?darki (wiesz, KTÓRA ;) mog? wykonywa? niebezpieczne (z?o?liwe) kody JavaScript poprzez tagi HTML'a

- nie zostawiaj ostrze?e? e_notice samym sobie. Je?eli ju? si? jaki? pojawia, to oznacza, ?e istnieje potencjalna dziura do wykorzystania przez haker'ów. Deklaruj zmienne z domy?ln? warto?ci?, które b?dziesz wykorzystywa?. Przyk?ad bez deklaracji (ostrze?enie e_notice):



Powy?szy skrypt wyda sotrze?enie: Variable $result not defined at line XXX.

Poni?ej poprawiony skrypt bez ostrze?enia:



-----------------------------
Ten artyku? nie obejmuje wszystkich zagadnie? bezpiecze?stwa skryptów PHP, ale powinien pomóc m?odym programistom w pisaniu bardziej bezpiecznych skryptów dla PHP-Fusion.

Pozdrówka:
Wooya
wooya [at] 2loud [dot] net [dot] pl

Komentarze

#1 | szer dnia 08 kwietnia 2007 16:25
Dobry artyku? Wink. Napewno przyda si? ka?demu kto pisze modyfikacje i dodatki
#2 | polven26 dnia 08 kwietnia 2007 17:22
bajeranckie!!!Grin
#3 | prybka4 dnia 10 kwietnia 2007 20:08
Fajnie ?e kto? to poruszy?
#4 | syber dnia 29 listopada 2007 16:25
Czym sie rozni iUSER od iMEMBER?

Dodaj komentarz

Zaloguj się, aby móc dodać komentarz.

Oceny

Tylko zarejestrowani użytkownicy mogą oceniać zawartość strony
Zaloguj się lub zarejestruj, żeby móc zagłosować.

Świetne! Świetne! 100% [1 głos]
Bardzo dobre Bardzo dobre 0% [0 głosów]
Dobre Dobre 0% [0 głosów]
Średnie Średnie 0% [0 głosów]
Słabe Słabe 0% [0 głosów]
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl