Jump to content

PHP biztonságban


Csaba_1
 Share

Recommended Posts

Csaba_1

Sziasztok!

 

Mostanában nézelõdök PHP programozás tanulás céljából a neten és sok helyen látom, hogy milyen fontos védeni az adatokat az adatbázisban és olyan kódot írni ami megvéd a betöréstõl.

Tudom erre vannak függvények, meg módszerek is, de még kezdõként nem nagyon ismerem ezeket. Gondoltam írok ide, hogy legyen egy topic amin összegyûjtjük ezeket és talán más számára is hasznos lesz, mert én ezeket tudva szeretném elkezdeni. Remélem más is így van vele. :)

 

(Ha látjátok értelmét akkor lehetne MySQL témában is ilyen, nem?:) )

 

Elsõnek egy ilyet találtam: 6 tipp a biztonságosabb PHP programozáshoz

 

Linkeket meg saját tapasztalatokat is várok meg mindent ami ilyen témájú. :)

 

Ha értelmetlen ötlet szerintetek akkor nyugodtan töröljétek. :hááát:

Link to comment
Share on other sites

payskin

Csaba: lapozz le Hodicska Gergely hozzászólásáig. Látod? Jó ötletnek tűnt, de kiderül róla, hogy egy rakás sületlenség. :( Kezeld mindig fentartással ezeket a dolgokat. Meg az ilyen felsorolások helyett érdemesebb lehet konkrét, működő példákat látni, hogy mások hogy csinálják.

 

Ami azonnal felmerült bennem, hogy hol vannak Gergelynek óriái, amire be lehetne járni? ;) Meg elmentem a blogjára, és rögtön el is raktam a Kedvencek közé, mert olyan, hogy vissza fogok rá járni olvasgatni. (Már ha lesz mit.)

 

Ezt is egy hozzászólásban ajánlják: http://wfsz.njszt.hu/projektek_biztonsag.php

Link to comment
Share on other sites

Csaba_1

Mint írtam, azért volt célom ilyet elindítani, hogy valami kiindulást szerezzek és ne kelljen majd a fejemet fogni pár hónap után, hogy nem írok elég biztonságos oldalakat és kezdjek el megint átszokni a jóra. Most egyetlen ilyen módszerrõl se tudom nagyon hogy melyik függvény mire jó, hogy használjam, csak ha keresgetek a neten vagy más kedves ember segít benne egy picit. :)

 

Közben találtam mást is:

 

A PHP biztonsági buktatói

PHP, valamennyire biztonságosabban

PHP a frontvonalon, védekezés a bemeneten

Link to comment
Share on other sites

szpetya

Szerintem ezek a biztonsági dolgok akkor fognak leginkább elõjönni, amikor elkezdesz kódolni.

Nekem adtak egy kódot, hogy írjak bele ezt, azt. Abban a kódban volt egy file feltöltési form és a feltöltésnél nem volt vizsgálva, hogy milyen file-t tölt fel. Ha a file olyan helyre van feltöltve amit a user is el tud érni, akkor feltölt egy scriptet meghívja és kész is a baj.

 

Ez csak egy példa a sok közül. Ezekkel tényleg akkor fogsz találkozni amikor elkezdesz kódolni.

 

Üdv

P

Link to comment
Share on other sites

Csaba_1

Akkor honnan fogom tudni, hogy na itt van/lenne egy rés amit kitud más használni? :D

Link to comment
Share on other sites

szpetya

Hidd el rájössz magadtól. Egy másik példa:

 

Van egy oldal ahova a regisztrált felhasználók tartalmat vihetnek, fel legyen például dalszöveg. Ezeket a dalszövegeket, amiket õ felvitt tudja módosítani, törölni. Mondjuk, ha õ a saját dalszövegét nézi akkor rá tud kattintani egy Módosítás vagy Törlés gombra. Amikor õ erre rákattint, meghív egy urlt egy GET paraméterrel. A GET paraméter legyen, mondjuk mod=3123 <- ez a dalszövegnek az id-ja. Most ha módosítás elõtt nem végzel el egy olyan ellenõrzést, hogy az a dalszöveg ténylegesen hozzá tartozik akkor ezáltal más is tudja módosítani, törölni egy másik felhasználó által felvitt dalszöveget csak mod után lévõ számot kell neki átírnia. Valaki ír egy scriptet, ami annyit csinál, hogy meghívja a törlés linket és végigpörgeti 0-tól 100.000-ig és máris törölve vannak a dalszövegek.

 

Üdv

P

 

Link to comment
Share on other sites

Csaba_1

Valamire úgyis rájövök szerintem is, de pl a SQL injectionra nem jöttem volna rá. :D

 

 

Link to comment
Share on other sites

  • 1 year later...
Tasi

Hali, az XSS típusú támadás ellen (form elemeken át) elegendõ védekezés a htmlspecialchars a kimenetre?

Olvastam valahol, hogy az sem mindig elég ha figyelembe vesszük a "különbözõ böngészõ bugokat stb..". Mit jelent a "stb..", mert arra már nem találtam választ. Talán másképp is lehet kacsacsõröket vagy valami mást bejuttatni az adatbázisba amit aztán a böngészõ html karakterként értelmez a kimeneten és a fenti függvény nem veszi figyelembe?

Link to comment
Share on other sites

arpsoft

Szerintem jobb az adatokat még tárolás elõtt ellenõrizni, mint a kiírásnál.

Link to comment
Share on other sites

Tasi

Jó, az igaz még beírás előtt ellenőrzöm, de elegendő a htmlspecialchars? Textarea-ból jönnének az adatok és a kacsacsőröket mindenképp ki kell engednem. 100%-ig biztos lehetek abban, hogy a kimeneten semmi féle html vagy script kód nem lesz értelmezve, legyen szó akármilyen böngésző bug vagy más trükkről?

Link to comment
Share on other sites

Mezofi

Pl.:

Egy jól használható függvény:

function tep_db_input($string) {
$string = trim($string);
    if (function_exists('mysql_real_escape_string')) {
      return mysql_real_escape_string($string);
    } elseif (function_exists('mysql_escape_string')) {
      return mysql_escape_string($string);
    }

    return addslashes($string);
  }

 

Használata

$sql = "SELECT * FROM tabla WHERE nev = '". tep_db_input($_GET["nev"]) ."'   "

Mezõfi

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...