Paraméterek Apache és PHP összehagolásához - szakdolgozat védésemhez
A címben olvasható kérdésre kell válaszolnom a szakdolgozatom védésekor (pénteken).
Végiggondoltam, és arra jutottam, hogy elmondom, hogy httpd.conf -ban ott van az AddType, meg megemlítek a php.ini-ből néhány fontosabb beállítási lehetőséget (register_globals, display_error, error_reporting)... de itt elakadtam.
Kérnék néhány öttletet, mimindent lenne még érdemes megemlítenem?
Köszi
TikuVoltam
■ Végiggondoltam, és arra jutottam, hogy elmondom, hogy httpd.conf -ban ott van az AddType, meg megemlítek a php.ini-ből néhány fontosabb beállítási lehetőséget (register_globals, display_error, error_reporting)... de itt elakadtam.
Kérnék néhány öttletet, mimindent lenne még érdemes megemlítenem?
Köszi
TikuVoltam
telepítés, beállítás
d
kapcsolóval:végig a PHP beállításáról kell beszélni; nem lehet(ne) esetleg a telepítésről, kapcsolódási módokról (SAPI-k: apache, apache2, CGI) is szót ejteni?
eddig milyen ,,fontosabb beállítási lehetőségeket'' kívánsz fölsorolni?
bbalint
ezekre gondoltam
Bár már (lehet hogy a fáradtság miatt, vagy mert már vagy százszor elolvastam a kérdést) egyre kevesebb értelmet vélek benne felfedezni. Már az is felmerült bennem hogy teljesen rosz irányba indultam el.
Ugye nem? :'(
rizs
ugyanígy bevezetni a PHP-t aztán belevágni a felsorolt PHP beállíthatósági lehetőségekre, aztán PHP beállítások, hogy mit érdemes állítgatni ...
register_globals-nál fel lehet hozni példát is, hogy miért is rossz, éshogy mégis miért használták/használják sokan.
én még megemlíteném a a következőket:
- engine - PHP kikapcsolása (apache konfig)
- short_open_tag - <? nyitó tag-ek (
- asp_tags - <%, vagyis ASP-stílusú nyitó tag-ek
- output_buffering - kimenet-pufferelés bekapcsolása minden PHP elején; itt lehet szólni, hogy ilyenkor pl az egész PHP-ban lehet nyugodtan HTTP fejléceket kírni (header() és setcookie())
- safe_mode - szafaládé (najó: safe mode)
- open_basedir - könyvtár lekorlátozása (nemcsak szafaládé módban; azt eredményezi, hogy csak az itt megadott könyvtárba' levő filékkel lehet dolgozni)
- disable_functions, disable_classes - további korlátozások; a 'biztonság' szó megemlítésével, meghogy pl milyen függvényeket szokás letiltani (exec(), phpinfo(), ftp_connect())
- expose_php - annyira nem fontos, de biztonsági szempontból igen: látszódjon-e a
- memory_limit - linuxon alapértelmezésben nincs memória-korlátozás, windowson viszont igen
- max_execution_time, max_input_time - max. végrehajtási és a bejövő adatok max. feltöltési ideje
- error_reporting - milyen hibaüzeneteket mutasson alapból; milyen alapértéken van? miért érdemes E_ALL-ra állítani inkább? (velem volt néhányszor, hogy egy nem definiált változóval bajlódtam több időt)
- magic_quotes_gpc - bejövő adatok escape-elése, időt vesz/vehet el fölöslegesen (én nem szeretem; megcsinálom akkor, ha kell - *_escape_string() a *_query()-ben)
- include_path - include*()/require*() függvényeknél hol keresgélje a megadott file nevét
- extension_dir - kiterjesztések helye
- file_uploads, upload_max_filesize, post_max_size - file feltöltésekor ezeket vesz figyelembe PHP
- allow_url_fopen - ftp://, http://, stb:// filék megnyitásának engedélyezése (biztonság)
- SMTP, sendmail_path - mail() levélküldéshez
felsoroltam sokt, válogass. lehet, erről sokkal többet lehet és érdemes beszélni.T_OPEN_TAG
) engedélyezéseServer
(?) HTTP fejlécben, hogy PHP van (biztonság)csak a PHP beállíthatásáról kell/lehet majd beszélned, vagy a "mellékes" témákról (apache, PHP története, telepítése) is?
bbalint
csak ami a címben van
A kérdésből kiindulva, meg hogy nem kell csak 5-8 percet beszélni erről a kérdésről, azt hiszem, hogy a történeti dolgokat hanyagolhatom.
Arra gondoltam, hogy egy rövid bevezetőben (ami természetesen kell) ecsetelem, hogy a biztonsági kérdéseknél mikre kell odafigyelni. A "gyári" beállítások milyen veszélyeket rejthetnek magukban, valamint, hogy a paranoiás rendszergazdák mikkel szórakozhatnak még. :)
Amúgy hogy őszinte legyek, magát a kérdést is egy kicsit sántának érzem. Csak azért mert én "összehangolni" olyan dolgokat szoktam amik nem jönnek ki egymással teljes mértékig. Az Apache PHP viszont szerintem egész jól megvannak már elég régen.
Plusz még a paraméterezés biztos hogy ugyanazt jelenti mint beállítás? Mert az én szóhasználatomban a beállítás egyszeri, központi, tevékenységet jelent. Míg a paraméterezés a feladatnak (környezetnek, könyvtárnak) megfelelő beállításokat, melyekkel eltérek a központi beállításoktól.
Csak hogy érthető legyek: a böngészőmnek megmondom, hogy ha elindul akkor mi legyen a kezdőoldal. Ez egy beállítás. De ha egy másik program azt mondja neki, hogy ezt az URL-t mutasd, akkor az egy paraméter.
Ezek miatt, is érzem hogy rosz irányba indultam el.
ö
engine - ez a zopció arra való, hogy mondjuk globálisan be van töltve a PHP, de mondjuk egy
<VirtualHost/>
-on vagy egy<Directory/>
könyvtárban nem szeretnéd, hogy még véletlenül is lefussanak a PHP-k, akkor ott csak egyszerűen annyit kell mondani, hogyAddType
direktíva (a dokumentáció szerint) majd' mindenhol használható ...short_open_tag - sok forráskódban (amit láttam) csak rövid nyitó tag-et (
<?
) tesznek, nem pedig rendeset (<?php
,<script language="php">
), ami mindenhol működikasp_tags - ez nemcsak az ASP stílusú nyitó tag-eket (
<%
) engedélyezi, de az ASP stílusú kiiratást is:az open_basedir pedig inkább a félparanoiás rendszergazdák esete; pl elég csak beletenni egy pontot és a PHP már csak a vele egy szinten vagy a vele egy könyvtárban levő filéket tudja birizgálni:
hát, szerintem paraméterezni... meghatározni paramétereket, hogy milyen korlátok között működjön a dolog.
az is lehet, hogy meg kéne említeni, hogy a fejlesztői gépen milyen beállításokat javasolsz, míg a rendes szerveren milyen korlátozásokat érdemes bevezetni.
a kérdés pontosabb jelentésére nem lehetne rákérdezni? vagy felvázolni a te elméleted, hogy te a beállításokra gondoltál és hogy az helyes-e?
bbalint
jó ötlet
Ez egy naggyyon jó ötlet! küldök is egy mailt a bírálónak
TikuVoltam
a válasz
Ennek fényében úgy gondolom, hogy a scriptem futásához fontos beállításokat fogom kicsit kivesézni. Ezek pedig
Majd még azt kell kiderítenem, hogy hogy lehet egy scriptet (vagy inkább a webszervert?) úgy belőni, hogy csk a belső hálózatból, intranetről legyen elérhető. Gondolom a htaccess környékén kell majd nézelődnöm.
TikuVoltam
Ma is holnap fekszünk le, mint tegnap
htaccess
ServerRoot
meg ilyesmik)viszont lehet
<Directory/>
,<Location/>
,<Files/>
és egyéb részeket beletenni, a httpd.conf-ban elhelyezettAllowOverride
-nak megfelelően.helyi hálózatra meg pl úgy lehet korlátozni, hogy
Listen
)Allow
megDeny
utasításokat, akkor azokkal úgy, hogy:Deny from All
Order allow,deny
így, elvileg csak a 192.168.1. kezdetű IP-kről lehet jönni.
bent munkahelyen én inkább a PHP-val ellenőrzöm a dolgot, mer' mér' ne ...
lehet inkább majd megtanulok tűzfalul és majd úgy szűröm ki a nem kívánt IP-ket.
.htaccess hátránya, hogy ha engedélyezve van, akkor "mindenhol" keresgéli az apache, minden lekérésnél, ezért lassú lehet a dolog, hogy pl /e/b/b/e/a/k/o/n/y/v/t/a/r/b/a/v/a/g/y és olyankor az összes fentebb levő könyvtárba keres .htaccess :-(
én fejlesztéskor .htaccess-be bele teszem a dolgot, de amikor éles szerverre kerül ki, inkább a httpd.conf-ba vagy .vhost filébe átírom.
bbalint
Köszönet a segítségért
Sikerült megvédenem a szakdolgozatomat 5-ösre :)
TikuVoltam
Ma is holnap fekszünk le, mint tegnap
kösz
miről kérdeztek végül?
bbalint
másról
TikuVoltam
Ma is holnap fekszünk le, mint tegnap