Tanítás, webfejlesztés, programozás, informatika, rock zene

Alapprobléma

A DOS ablakos nyomtatás esetén az LPT-be érkező adatokat átirányítja a rendszer a megfelelő USB portba, amit a nyomtató beállításánál lehet elérni. A beállítás XP esetén:

Vezérlőpult > Nyomtatók és faxok > HP Nyomtatód > Tulajdonságok > Portok

http://support.microsoft.com/kb/315231

1.Kattintson a Start menü Futtatás parancsára, írja be a Megnyitás mezőbe a regedit parancsot, majd kattintson az OK gomba.
2.

Keresse meg a következő rendszerleíró kulcsot:

Ha az eddig leírt biztonsági előírásokat betartjuk, akkor kicsi a valószínűsége, hogy a php alapú fejlesztéseinket támadók feltörjék, de sokan használnak előre elkészített keretrendszereken alapuló website-okat, amelyeket mások fejlesztettek. Ezekben igenis lehetnek olyan beállítások, amelyek veszélyeztetik a rendszer biztonságát.

A védekezés gyenge módja, de lehetősége, hogy a php kiterjesztés helyett más kiterjesztéssel fussanak le a scriptjeink. Ehhez az Apache konfigban az alábbi sot lehet beszúrni:

AddType application/x-httpd-php .zeno .py .asp

A fenti esetben a php kódot pedig zeno kiterjesztéssel kell megírni, vagy a támadó azt hiheti, hogy python illetve asp fut a szerveren.

A php hibakezelésének

A mágikus idézőjeleket a bejövő GET/POST/Cookie adatok esetén használjuk. Ha a mágikus idézőjelek beállítás be van kapcsolva, akkor szerver oldal a stringben beküldött idézőjeleket helyettesíti a backslash-sel kiegészített párjukkal, azaz: \' vagy \" jelekkel. Ugyancsak helyettesíti a \ jelet \\ jellel és a NULL karaktert \NULL-lal. Ezek megakadályozzák az SQL injection támadásokat. Az alábbi php.ini beállítások javasoltak tehát:

Az alábbi tanácsok elsődlegesen WEB-es alkalmazásokra vonatkoznak.

Az adatbáziskezelők különböznek egymástól, de alapvető dolgokat a használatuk során figyelembe kell venni.

  • Az adatbázis használatbavételekor arra kell ügyelni, hogy a PHP kód sohase root vagy admin jogú felhasználóként használja az adatbázist, ugyanis ilyenkor az adatbáziskezelő képes fájlokat is létrehozni a szerveren. (Sajnos a múltban volt ilyen szomorú tapasztalatom.

A PHP futtatásának egyik lehetősége a CGI futtatás. Ez azt jelenti, hogy a php oldal elérésekor a webszerver meghívja a rendszeren lévő php futtatható állományt (pl. php.exe) betölti a memóriába és átadja neki a kért url-en lévő file-t.

http://valami.hu/cgi-bin/php?/valami/futtathato.exe

Mivel a PHP a szerveren képes minden olyan könyvtárat és folyamatot elérni, amire jogosultsága van, ha szükséges a szerver fájlrendszerében írási, olvasási, törlési feladatokat végeznie a kódnak, különös gondossággal kell a kódot megírni.

A Zend_Registry az az osztály, amely a php globális változói helyett használható.

Használata során a Zend Registrybe betölthetünk adatokat:

  • egy stringet
  • egy tömböt
  • Objektumot

Ezeket az adatokat betölthetjük és az oldal futása során bármikor elérhetjük. A program lefutásával az adatokat - ha kell célszerű lementeni egy sessionbe, illetve a szükséges adatokat elmenteni egy adatbázisba profilként.

Módosítsuk az index.php oldalt az alábbiak szerint: