ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Webm?ves Kelemen tan¨¢csai,
 avagy mi kell a PHP fal¨¢ba?
       Buher¨¢tor,
       Buher¨¢tor, BuheraBlog
Bevezet?
?   ¡°0% ****, 100% tapasztalat¡± ?
    ? ¡­¨¦s n¨¦h¨¢ny technikai finoms¨¢g
?   A webalkalmaz¨¢sok a v¨¢llalati infrastrukt¨²ra tipikus
    gyenge pontjai
    ? Egyedi alkalmaz¨¢s
    ? Nem ny¨²lunk hozz¨¢, ameddig m?   m?k?dik
?   A PHP remek ¨¢llatorvosi l¨®
    ? J¨®l ismert, j¨®l olvashat¨®, egyszer?
    ? H¨ªrhedten bugos k¨®dok (vagy csak rossz PR?)
PHP ¨C Mi¨¦rt szeretj¨¹k?
 K?nnyen tanulhat¨®, gyorsan fejleszthet?
    C-like syntax
    Dynamic Typing
 A Webre sz¨¢nt¨¢k
 K?nnyen telep¨ªthet?
    Felm¨¢solom, megy
           ?
    K?nny? konfigur¨¢ci¨®, ak¨¢r fut¨¢sid?ben
                              fut¨¢sid?
 J¨® platform t¨¢mogatotts¨¢g
 J¨® dokument¨¢ci¨®, sz¨¦les felhaszn¨¢l¨®i b¨¢zis
 OOP (>=PHP5)
 GPL licensz
PHP ¨C Mi¨¦rt nem szeretj¨¹k
 L¨¢sd az el?z? di¨¢t :)
 K¨®der Pisti kedvenc nyelve
 Be¨¦p¨ªtett f¨¹ggv¨¦ny-v¨ªzfej
           f¨¹ggv¨¦ny-
   K?vetkezetlen elnevez¨¦sek, f¨¹ggv¨¦ny-szignat¨²r¨¢k
                              f¨¹ggv¨¦ny-
    ? strlen(), str_split()
   A b?s¨¦g zavara
    ? mysql_escape_string(),
      mysql_real_escape_string(), addslashes() ¡­
   Biztons¨¢g...?
 Y U No Unicode?
Lehet j¨®l is ³¦²õ¾±²Ô¨¢±ô²Ô¾±
PHP biztons¨¢g - ¨®voda

 A webszerver korl¨¢tozott jogokkal fut, ugye?
 A register_globals ki van kapcsolva, ugye?
 URL-
 URL-eket nem lehet megnyitni, ugye?
                    megnyitni, ugye?
 A felhaszn¨¢l¨®k nem l¨¢tj¨¢k a hiba¨¹zeneteket, ugye?
A PHP-s t¨ªpushiba
  PHP-

?   File Include hib¨¢k
    ?   Azonnali k¨®dfuttat¨¢s
    ?   Helyi forr¨¢sb¨®l
    ?   T¨¢voli forr¨¢sb¨®l
    ?   Egy kis eml¨¦keztet?¡­
Local File Include
?   <?include(¡°files/¡±.$_GET[¡®inc¡¯]);?>
?   Mit futtathatunk?
        futtathatunk?
    ?   Alkalmaz¨¢son kereszt¨¹l felt?lt?tt f¨¢jlok
        ?   Ideiglenes f¨¢jlok
    ?   Napl¨®f¨¢jlok (pl. PHP k¨®d a User Agentben)
                                        Agentben)
    ?   Az alkalmaz¨¢s saj¨¢t f¨¢jljait rossz helyen include-
                                                  include-
        olva igen hasznos hiba¨¹zenetek kaphat¨®ak
Remote File Include
?   <?include($_GET[¡®inc¡¯].¡±.php¡±);?>
?   allow_url_fopen=True
?   Mit futtathatunk?
    ?   T¨¢voli webkiszolg¨¢l¨®n elhelyezett tetsz?
                                          tetsz?leges
        k¨®dot!
    ?   Legt?bbsz?r egyben LFI is¡­
Basedir restriction
                 ?
 Minden f¨¢jlkezel? funkci¨®ban ellen?
                              ellen?rizni kellene a be¨¢ll¨ªt¨¢st
   ?s minden felhaszn¨¢lt C k?nyvt¨¢rban is¡­
 5.2.9, 5.2.12, 5.3.0, 5.3.1 ¡­ mind megker¨¹lhet?
 MOPB: ?not simple safe_mode, open_basedir bypass
 vulnerabilities¡±
 Tudta-
 Tudta-e ?n, hogy 5.2.16 ill. 5.3.4 el?tt az itt megadott ¨¦rt¨¦kek,
                                    el?
 csak prefixek, nem konkr¨¦t k?nyvt¨¢rak voltak?
   /home/b => /home/b/ , /home/bizalmas/
Safe Mode
 Egy pr¨®b¨¢lkoz¨¢s a vesz¨¦lyes f¨¹ggv¨¦nyek letilt¨¢s¨¢ra /
 korl¨¢toz¨¢s¨¢ra
 Minden ¨¦rintett funkci¨®ban ellen?
                            ellen?rizni kellene a be¨¢ll¨ªt¨¢st
 Az eredm¨¦ny: hamis biztons¨¢g¨¦rzet
 ?safe mode is an attempt to solve the shared-server security problem. It is
                                           shared-
 architecturally incorrect to try to solve this problem at the PHP level, but
 since the alternatives at the web server and OS levels aren't very realistic,
 many people, especially ISP's, use safe mode for now¡±

 ?This is a still probably incomplete and possibly incorrect listing of the
 functions limited by safe mode. ¡±

 5.3.0 ¨®ta deprecated, 6-ban nincs
                       6-
Vesz¨¦lyes f¨¹ggv¨¦nyek



        Melyek ezek?
Vesz¨¦lyes f¨¹ggv¨¦nyek -
Parancsfuttat¨¢s
 passthru                     apache_child_terminate
 exec                         chown
                              chgrp
 pnctl_exec                   link
 proc_open                    symlink
 popen                        posix_kill
 system                       posix_mkfifo
 shell_exec                   posix_setpgid
                              posix_setsid
 register_shutdown_function   posix_setuid
 register_tick_function       proc_close
 dl                           proc_get_status
 eval                         proc_nice
 preg_replace [!]             proc_terminate
                              Putenv
 ...                          Touch
                              ...
Vesz¨¦lyes f¨¹ggv¨¦nyek ¨C
H¨¢l¨®zat
 ftp_connect
 ftp_ssl_connect
 fsockopen
 pfsockopen
 socket_bind
 socket_connect
 socket_listen
 socket_create_listen
 socket_accept
 socket_getpeername
 socket_send
 ...
Vesz¨¦lyes f¨¹ggv¨¦nyek
 A list¨¢nak m¨¦g kor¨¢nt sincs v¨¦ge
    A modulok nagy r¨¦sz¨¦t m¨¦g nem is l¨¢ttuk!

                     ? ? ?jtem¨¦ny:
    Folyamatosan b?v¨¹l? gy?jtem¨¦ny:
    https://github.com/v-
    https://github.com/v-p-b/DangerousPHPFunctions

 Erre ¨ªrjon valaki IDS szab¨¢lyt, logelemz? stb.!
                                 logelemz?t,
 Az eval()-t le sem lehet tiltani
    eval()-
 A disable_functions legal¨¢bb j¨®l kezelhet?
 Szint¨¦n hasznos INI param¨¦terek:
 extension_dir, enable_dl
F¨¢jl fel?lt¨¦s

 Kedvenc¨¹nk, tipikus gyenge pont
 Sok helyen el?fordul
 Legal¨¢bb 80% sebezhet?
 Legt?bb esetben azonnal k¨®dot futtathatunk
                    ?s¨¦gek
 Alattomos hibalehet?s¨¦gek
F¨¢jl felt?lt¨¦s -
?k?lszab¨¢lyok
                 ?r¨¦s
 Feh¨¦rlist¨¢s sz?r¨¦s kiterjeszt¨¦sekre
   De: Egy JPG-t is lehet futtatni include() hib¨¢val!
             JPG-
 Nevezz¨¹k ¨¢t a felt?lt?tt f¨¢jlt!
   A f¨¢jln¨¦v is tartalmazhat shell, PHP utas¨ªt¨¢sokat!
   Ha JPG-re sz¨¢m¨ªtunk, legyen ez az ¨²j kiterjeszt¨¦s!
       JPG-
 Ha nem musz¨¢j, ne a webroot al¨¢ t?lts¨¹nk fel!
   Egy diszp¨¦cser szkript jogosults¨¢got ellen?
                                          ellen?rizhet, MIME
   t¨ªpust ¨¢ll¨ªthat stb.
 A k¨¦peket transzform¨¢ljuk!
 A dupla kiterjeszt¨¦seket ker¨¹lj¨¹k!
F¨¢jlfelt?lt¨¦s ¨C Az Apache
tr¨¹kk
                 ?r¨¹nk
 Feh¨¦rlist¨¢val sz?r¨¹nk kiterjeszt¨¦seket
   $allowed=array(?.avi¡±,¡±.mov¡±,¡±.qt¡±);

   if (inarray(strrchr($name,'.'),$allowed)) return ACCEPT;

 Felt?lt?k egy shell.php.qt nev? f¨¢jlt
 A kiterjeszt¨¦s megfelel?
 Az Apache viszont nem ismeri a .qt kiterjeszt¨¦st, ez¨¦rt
 a k?vetkez?t veszi figyelembe kiszolg¨¢l¨¢skor!
           ?t
 Van egy PHP shell¨¹nk...
F¨¢jlfelt?lt¨¦s ¨C IIS-en
                IIS-
ugyanez

 <= IIS 6
 evil.asp;.jpg vagy evil.asp:.jpg
 A ; ill. : ut¨¢ni r¨¦szeket a kiszolg¨¢l¨® nem veszi
 figyelembe
F¨¢jlfelt?lt¨¦s - Form¨¢tumellen?
                ¹ó´Ç°ù³¾¨¢³Ù³Ü³¾±ð±ô±ô±ð²Ô?°ù³ú¨¦²õ
F¨¢jlfelt?lt¨¦s - Form¨¢tumellen?
                ¹ó´Ç°ù³¾¨¢³Ù³Ü³¾±ð±ô±ô±ð²Ô?°ù³ú¨¦²õ
K¨¦pek ¨¢tm¨¦retez¨¦se

?   image_resize.php?width=100&height=100
    image_resize.php?width=100&height=100
    ?   ¡°?r?m, b¨®dott¨¢¡±
         ?r?m, b¨®dott¨¢¡±
?   image_resize.php?width=10000&height=10000
    image_resize.php?width=10000&height=10000
    ?   DoS,
        DoS, nem?r?m
?   Nem csak a webes hib¨¢kra kell figyelni!
                                  figyelni!
    ?   ¡°A t¨¢mad¨¢sok soha nem lesznek rosszabbak¡±
                                      rosszabbak¡±
F¨¢jlfelt?lt¨¦s - RFC1867

 Gynvael Coldwind, 2011
            ?,
 Nem jellemz?, de nagyon sz¨¦p :)
 Felt¨¦telezz¨¹k, hogy m¨¢r van egy helyi include hiba
   Linuxon ¨¢ltal¨¢ban ez sem el¨¦g
 Nagyr¨¦szt Windows lehet?
                   lehet?s¨¦g
F¨¢jlfelt?lt¨¦s - RFC1867
F¨¢jlfelt?lt¨¦s - RFC1867
F¨¢jlfelt?lt¨¦s - RFC1867
 A felt?lt?tt f¨¢jlok v¨¦letlenszer? nevet kapnak
 ellen?rz¨¦s el?tt
   A k?nyvt¨¢r ¨¢ltal¨¢ban default
   Windowson 16-bit v¨¦letlen ¨C nem t¨²l sok
             16-
 De a Windows ¨¦rtelmezi a wildcardokat !(!!1)
                                       !(!!1
           ?leges
   << Tetsz?leges karakterl¨¢nc
   < Tetsz?leges karakter
      ?
   Els? egyez¨¦s kiv¨¢laszt¨¢sa
Adatb¨¢zis el¨¦r¨¦s

?   Az SQL injection rossz, ¨¦rtem?
                     rossz, ¨¦rtem?
    ?   Ugye mindenki tudja mi az az SQL injection¡­?
?   MySQL-
    MySQL-hez van remek escape f¨¹ggv¨¦ny!
                               f¨¹ggv¨¦ny!
    ?   mysql_escape_string()
        mysql_escape_string()
?   Azaz m¨¦gsem olyan j¨®¡­
                      j¨®¡­
Adatb¨¢zis el¨¦r¨¦s ¨C SQL
Smuggling
?   A DBMS okosan az ¨¦rv¨¦nyes locale szerint pr¨®b¨¢lja
    ¨¢talak¨ªtani a sp¨¦ci karaktereket
    ? ? -> A, ?->I, ?->U ¡­
              ? - ?-
?   A mysql_escape_string() nem veszi figyelembe az
    adatb¨¢zis locale-t
                locale-
?   Az PHP escape ¨¦s a DBMS konverzi¨® ut¨¢n ¨²jra
    injectionre alkalmas karakterl¨¢nc ¨¢llhat el?
    ? http://wechall.net/challenge/addslashes/index.php
    ?   ?ben
      ?l?ben m¨¦g nem l¨¢ttam ilyet, de ¡­
Adatb¨¢zis el¨¦r¨¦s


 Ugye senki sem karakterl¨¢nck¨¦nt pakolja ?ssze a
                  lek¨¦rdez¨¦seit?
Adatb¨¢zis el¨¦r¨¦s -
    Prepared statements
?   Hat¨¦kony!
    Hat¨¦kony!
    ? Feldolgoz¨¢s, ford¨ªt¨¢s, tervez¨¦s, stb.
      Feldolgoz¨¢s, ford¨ªt¨¢s, tervez¨¦s, stb. csak egyszer!
                                                 egyszer!
?   Biztons¨¢gos!
    Biztons¨¢gos!
    ? Adat ¨¦s SQL elv¨¢lasztva
    ? T¨ªpusegyeztet¨¦s
?   PHP-
    PHP-ban tipikusan valamilyen absztrakci¨®s r¨¦tegen
    kereszt¨¹l
    ? PDO
    ? ODBC
    ? ¡­
Adatb¨¢zis el¨¦r¨¦s - ORM
?   Object Relational Mapping
    ? DB entit¨¢s -> Objektum
?   A legt?bb keretrendszer tudja
?   Szint¨¦n biztons¨¢gos
    ? Ha a keretrendszerben nem sz¨²rtak el valamit¡­
                                           valamit¡­
?   Nagyon k¨¦nyelmes
    ? PHP ¨¦s SQL elv¨¢lasztva
?   Sokszor nem hat¨¦kony
?   Nem minden queryt lehet megfogalmazni
Adatb¨¢zis el¨¦r¨¦s - ORM
?   A ¡°fogalmaz¨¢si¡± probl¨¦m¨¢kat sokszor a subquery-k
                                          subquery-
    okozz¨¢k
    ?   JOIN-
        JOIN-olj okosan, subquery-k ¨¢ltal¨¢ban
                         subquery-
        feleslegesek!
?   Haszn¨¢ljunk VIEW-kat!
                VIEW-
?   Haszn¨¢ljunk t¨¢rolt elj¨¢r¨¢sokat!
    ?   Melyekben figyel¨¹nk az SQL injectionre :P
S¨¹ti attributumok - HttpOnly
?   Tank?nyvi XSS p¨¦lda:
    <script>alert(document.cookie)</script>
?   HttpOnly: Kliens oldali szkriptek nem f¨¦rhetnek hozz¨¢
    a s¨¹tihez!
?          ?
    B?ng¨¦sz? feature, nem biztos, hogy mindenhol
    implement¨¢lt¨¢k!
?      ?l
    Ett?l a XSS m¨¦g vesz¨¦lyes marad!
    ?   Teljes kontroll a felhaszn¨¢l¨® jogosults¨¢gaival!
S¨¹ti attributumok - HttpOnly
?   PHP-
    PHP-ban alap¨¦rtelmezetten nincs be¨¢ll¨ªtva a flag a
    session-
    session-?kre
?   php.ini: session.cookie_httponly=On
    ?   PHP 5.2.0-t?l
            5.2.0-
?   session_set_cookie_params()
?   M¨¢s s¨¹tikn¨¦l: setcookie() utols¨® param¨¦tere
S¨¹ti attributumok - Secure
?   Kapkodjuk el a h¨¢l¨®zaton r?pk?d? s¨¹tiket, ¨¦s
    jelentkezz¨¹nk be vel¨¹k
    ? https://github.com/asciimoo/whol
    ? Firesheep (es¨¦lyes Most Overhyped Extension)
?   B¨¢r a kommunik¨¢ci¨® HTTPS-en zajlik,
                          HTTPS-
                    ?
    kik¨¦nyszer¨ªthet? a s¨¹ti titkos¨ªtatlan k¨¹ld¨¦se
    ? <img src=/open_academy/php-security-2011052640/¡°http:/bank.com/logo.png¡±/>
            src=/open_academy/php-security-2011052640/¡°http:/bank.com/logo.png¡±/>
?   Secure: A s¨¹ti csak titkos¨ªtott csatorn¨¢n tov¨¢bb¨ªthat¨®!
?             ?
    B?ng¨¦sz? feature, nem biztos, hogy mindenhol
    implement¨¢lt¨¢k!
S¨¹ti attributumok - Secure
?   PHP-
    PHP-ban alap¨¦rtelmezetten nincs be¨¢ll¨ªtva a flag a
    session-
    session-?kre
?   php.ini: session.cookie_secure=On
    ?   PHP 4.0.4-t?l
            4.0.4-
?   session_set_cookie_params()
?   M¨¢s s¨¹tikn¨¦l: setcookie() utols¨® el? param¨¦tere
                                     el?tti
CSRF
?   Az XSS meg az SQLi lej¨¢rt lemez
    ?   Mindenki ismeri
    ?   Mindenhol m?k?dik¡­
?   A Cross-Site Request Forgery is lej¨¢rt lemez, de alig
      Cross-
    ismerik
?   ¡°Mi¨¦rt kellene nekem ilyesmivel foglalkoznom?¡±
    ?   Jogos k¨¦rd¨¦s!
CSRF

?   Autentik¨¢ci¨® ¨¢ltal¨¢ban s¨¹tikkel
?            ?
    A b?ng¨¦sz? egy s¨¹tit¨¢rat haszn¨¢l
?   A felhaszn¨¢l¨® t?bb lapon b?ng¨¦szik
?   Ha egy idegen oldalon elhelyezett form k¨¹ld adatot
    egy m¨¢sik oldalra, ahov¨¢ a felhaszn¨¢l¨® be van
                          ?
    jelentkezve, a b?ng¨¦sz? automatikusan k¨¹ldi az
    ¨¦rv¨¦nyes s¨¹tit
CSRF
CSRF
?   Haszn¨¢ljunk v¨¦letlen adatokat tartalmaz¨® mez?
                                             mez?ket
    minden formon
    ?   Ez a token¡­
    ?   ennek a felhaszn¨¢l¨®nak¡­
    ?   erre az ?rlapra lett kiadva
?   Referer valid¨¢ci¨®
    ?   Az ¨¢ldozat nem fogja meghamis¨ªtani a saj¨¢t
        Referer-
        Referer-¨¦t
    ?   Ha titkos¨ªtatlan a csatorna, akkor m¨¢r ¨²gyis
        mindegy
V¨¦delem - WAF

?   Web Application Firewall
    ?   Layer7
?   Komoly helyen alapkell¨¦k
?   Kiddie-
    Kiddie-k ¨¦s t?meges, automatiz¨¢lt t¨¢mad¨¢sok ellen
    kiv¨¢l¨®
?   Aki ¨¢t akar menni rajta, az el? -ut¨®bb ¨¢t fog menni.
                                el?bb
                                el?bb-
V¨¦delem - PHPIDS

?   include()-
    include()-dal beh¨²zhat¨® PHP k?nyvt¨¢r
    ?                    ?
        Modulk¨¦nt el¨¦rhez? t?bb CMS-hez
                                CMS-
?   Impressz¨ªv szab¨¢lyk¨¦szlet
?   J¨®l karbantartott
?   De hol haszn¨¢lj¨¢k?
V¨¦delem - Suhosin
?   Patch
    ? BoF v¨¦delem
    ? Format String v¨¦delem
    ? L¨¢ncolt list¨¢k, hash-t¨¢bl¨¢k v¨¦delme
               list¨¢k, hash-
    ? FreeBSD realpath()
                  realpath()
    ? ¡­
?   Extension
    ? Megregul¨¢zott preg_replace()
                        preg_replace()
    ? Titkos¨ªtott s¨¹tik
    ? V¨¦gtelen rekurzi¨®k meg¨¢ll¨ªt¨¢sa
    ? ¡­
?   ?s m¨¦g rengeteg hasznos funkci¨®
V¨¦delem ¨C K¨®d review
?   K?lts¨¦ghat¨¦kony,
    K?lts¨¦ghat¨¦kony, testreszabhat¨® megold¨¢s: grep
                                    megold¨¢s:
?   grep ¡®mysql_query¡¯
          mysql_query¡¯
?   grep ¡®SELECT¡¯
?   grep ¡®$_GET¡¯
?   grep ¡®eval(¡¯
          eval(¡¯
?   grep ¡®print_r(¡¯
          print_r(¡¯
?   Csak a fant¨¢zia szab hat¨¢rt! ?
                         hat¨¢rt!
Eml¨¦keztet?
?   Webalkalmaz¨¢s nem l¨¦tezik ?n¨¢ll¨®an
    ? HTTP szerver
    ? B?ng¨¦sz?
    ? DBMS
    ? T¨¢voli szolg¨¢ltat¨¢sok
    ? ???
?                  ?nek
    Egy j¨® fejleszt?nek ismernie kell az ¨¢ltala fejlesztett
    alkalmaz¨¢s k?rnyezet¨¦t is!
?   A webes t¨¢mad¨¢sok ¨¢ltal¨¢ban nem technol¨®gia-specifikusak
                                         technol¨®gia-
K?sz?n?m a figyelmet!
           figyelmet!
Linkek
?   http://www.owasp.org
?   http://www.hardened-
    http://www.hardened-php.net/
?   http://www.exploit-
    http://www.exploit-db.com/download_pdf/17010
?   http://www.exploit-
    http://www.exploit-db.com/download_pdf/15955
?   http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-
    http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-
    escape-
    escape-string
?   http://blog.mindedsecurity.com/2009/05/http-parameter-
    http://blog.mindedsecurity.com/2009/05/http-parameter-
    pollution-new-web-
    pollution-new-web-attack.html
?   http://blog.mindedsecurity.com/2009/05/client-side-http-
    http://blog.mindedsecurity.com/2009/05/client-side-http-
    parameter-
    parameter-pollution.html
?   http://resources.infosecinstitute.com/finding-bugs-in-php-
    http://resources.infosecinstitute.com/finding-bugs-in-php-
    using-
    using-grep/
?   http://buhera.blog.hu ;)

More Related Content

Viewers also liked (20)

Google io2011ˆó¸æ
Google io2011ˆó¸æGoogle io2011ˆó¸æ
Google io2011ˆó¸æ
cat kaotaro
?
Pollution ppt-090720025050-phpapp02
Pollution ppt-090720025050-phpapp02Pollution ppt-090720025050-phpapp02
Pollution ppt-090720025050-phpapp02
younisnas
?
Finaldelivering bigsociety
Finaldelivering bigsocietyFinaldelivering bigsociety
Finaldelivering bigsociety
ruralfringe
?
James Lowery, Latitude Client Summit 2013: How to Make Friends and Influence ...
James Lowery, Latitude Client Summit 2013: How to Make Friends and Influence ...James Lowery, Latitude Client Summit 2013: How to Make Friends and Influence ...
James Lowery, Latitude Client Summit 2013: How to Make Friends and Influence ...
yrewol
?
BCG Online- Hvordan Internettet forvandler den danske ?konomi
BCG Online- Hvordan Internettet forvandler den danske ?konomiBCG Online- Hvordan Internettet forvandler den danske ?konomi
BCG Online- Hvordan Internettet forvandler den danske ?konomi
FrontPage Google
?
Presentation smacad
Presentation smacadPresentation smacad
Presentation smacad
Elin Amberg
?
SA Youth Sex Survey 2011 - by Young Africa Live
SA Youth Sex Survey 2011 - by Young Africa LiveSA Youth Sex Survey 2011 - by Young Africa Live
SA Youth Sex Survey 2011 - by Young Africa Live
Praekelt Foundation
?
Jobsati
JobsatiJobsati
Jobsati
prabhuramyah1010
?
Singapore property weekly issue 1
Singapore property weekly issue 1Singapore property weekly issue 1
Singapore property weekly issue 1
Christian Paul Del Rosario
?
Tripwire march april 2011 v2
Tripwire march april 2011 v2Tripwire march april 2011 v2
Tripwire march april 2011 v2
ruralfringe
?
As4tcp paper
As4tcp paperAs4tcp paper
As4tcp paper
ruralfringe
?
Internet bijak
Internet bijakInternet bijak
Internet bijak
Ananta Bangun
?
3¸ÄÉƵزãÏÂÏÝ
3¸ÄÉƵزãÏÂÏÝ3¸ÄÉƵزãÏÂÏÝ
3¸ÄÉƵزãÏÂÏÝ
twnewone1
?
Ppt test
Ppt testPpt test
Ppt test
mistyinpdx
?
Storyboard haastattelu 1
Storyboard haastattelu 1Storyboard haastattelu 1
Storyboard haastattelu 1
Marjo Jussila
?
Ode ¨¤ NaturezaOde ¨¤ Natureza
Ode ¨¤ Natureza
110262
?
Hobuse unenaod
Hobuse unenaodHobuse unenaod
Hobuse unenaod
eberlein
?
Globant Talent Scouting Center
Globant Talent Scouting CenterGlobant Talent Scouting Center
Globant Talent Scouting Center
Globant
?
Crunch and sip!!
Crunch and sip!!Crunch and sip!!
Crunch and sip!!
y3ehps
?
Google io2011ˆó¸æ
Google io2011ˆó¸æGoogle io2011ˆó¸æ
Google io2011ˆó¸æ
cat kaotaro
?
Pollution ppt-090720025050-phpapp02
Pollution ppt-090720025050-phpapp02Pollution ppt-090720025050-phpapp02
Pollution ppt-090720025050-phpapp02
younisnas
?
Finaldelivering bigsociety
Finaldelivering bigsocietyFinaldelivering bigsociety
Finaldelivering bigsociety
ruralfringe
?
James Lowery, Latitude Client Summit 2013: How to Make Friends and Influence ...
James Lowery, Latitude Client Summit 2013: How to Make Friends and Influence ...James Lowery, Latitude Client Summit 2013: How to Make Friends and Influence ...
James Lowery, Latitude Client Summit 2013: How to Make Friends and Influence ...
yrewol
?
BCG Online- Hvordan Internettet forvandler den danske ?konomi
BCG Online- Hvordan Internettet forvandler den danske ?konomiBCG Online- Hvordan Internettet forvandler den danske ?konomi
BCG Online- Hvordan Internettet forvandler den danske ?konomi
FrontPage Google
?
Presentation smacad
Presentation smacadPresentation smacad
Presentation smacad
Elin Amberg
?
SA Youth Sex Survey 2011 - by Young Africa Live
SA Youth Sex Survey 2011 - by Young Africa LiveSA Youth Sex Survey 2011 - by Young Africa Live
SA Youth Sex Survey 2011 - by Young Africa Live
Praekelt Foundation
?
Tripwire march april 2011 v2
Tripwire march april 2011 v2Tripwire march april 2011 v2
Tripwire march april 2011 v2
ruralfringe
?
3¸ÄÉƵزãÏÂÏÝ
3¸ÄÉƵزãÏÂÏÝ3¸ÄÉƵزãÏÂÏÝ
3¸ÄÉƵزãÏÂÏÝ
twnewone1
?
Storyboard haastattelu 1
Storyboard haastattelu 1Storyboard haastattelu 1
Storyboard haastattelu 1
Marjo Jussila
?
Ode ¨¤ NaturezaOde ¨¤ Natureza
Ode ¨¤ Natureza
110262
?
Hobuse unenaod
Hobuse unenaodHobuse unenaod
Hobuse unenaod
eberlein
?
Globant Talent Scouting Center
Globant Talent Scouting CenterGlobant Talent Scouting Center
Globant Talent Scouting Center
Globant
?
Crunch and sip!!
Crunch and sip!!Crunch and sip!!
Crunch and sip!!
y3ehps
?

Similar to Webm?ves Kelemen tan¨¢csai, avagy mi kell a PHP fal¨¢ba? (20)

T¨²l¨¦l¨¦s a H¨¢rom Bet?s R?vid¨ªt¨¦sek vil¨¢g¨¢ban
T¨²l¨¦l¨¦s a H¨¢rom Bet?s R?vid¨ªt¨¦sek vil¨¢g¨¢banT¨²l¨¦l¨¦s a H¨¢rom Bet?s R?vid¨ªt¨¦sek vil¨¢g¨¢ban
T¨²l¨¦l¨¦s a H¨¢rom Bet?s R?vid¨ªt¨¦sek vil¨¢g¨¢ban
Open Academy
?
Szerver oldali fejleszt¨¦s korszer? m¨®dszerekkel C# nyelven
Szerver oldali fejleszt¨¦s korszer? m¨®dszerekkel C# nyelvenSzerver oldali fejleszt¨¦s korszer? m¨®dszerekkel C# nyelven
Szerver oldali fejleszt¨¦s korszer? m¨®dszerekkel C# nyelven
Kriszti¨¢n Gyula T¨®th
?
Laravel for Dummies
Laravel for DummiesLaravel for Dummies
Laravel for Dummies
Tam¨¢s Erd¨¦lyi
?
Webkonf 2013
Webkonf 2013Webkonf 2013
Webkonf 2013
David Papp
?
APACHE PHP MYSQL telep¨ªt¨¦se
APACHE PHP MYSQL telep¨ªt¨¦seAPACHE PHP MYSQL telep¨ªt¨¦se
APACHE PHP MYSQL telep¨ªt¨¦se
Pasar¨¦ti Gimi
?
LESS, mint css preprocessor
LESS, mint css preprocessorLESS, mint css preprocessor
LESS, mint css preprocessor
Levente Kiraly
?
PHP alkalmaz¨¢sok min?s¨¦gbiztos¨ªt¨¢sa
PHP alkalmaz¨¢sok min?s¨¦gbiztos¨ªt¨¢saPHP alkalmaz¨¢sok min?s¨¦gbiztos¨ªt¨¢sa
PHP alkalmaz¨¢sok min?s¨¦gbiztos¨ªt¨¢sa
Ferenc Kov¨¢cs
?
Nagy terhel¨¦s? webes rendszerek fejleszt¨¦se
Nagy terhel¨¦s? webes rendszerek fejleszt¨¦seNagy terhel¨¦s? webes rendszerek fejleszt¨¦se
Nagy terhel¨¦s? webes rendszerek fejleszt¨¦se
J¨¢nos P¨¢sztor
?
Hogyan optimaliz¨¢ljunk C/C++ k¨®dokat!
Hogyan optimaliz¨¢ljunk C/C++ k¨®dokat!Hogyan optimaliz¨¢ljunk C/C++ k¨®dokat!
Hogyan optimaliz¨¢ljunk C/C++ k¨®dokat!
Open Academy
?
Objektum-orinet¨¢lt m¨¦r¨¦sek a gyakorlatban
Objektum-orinet¨¢lt m¨¦r¨¦sek a gyakorlatbanObjektum-orinet¨¢lt m¨¦r¨¦sek a gyakorlatban
Objektum-orinet¨¢lt m¨¦r¨¦sek a gyakorlatban
Antal Orcsik
?
Hello Laravel 5!
Hello Laravel 5!Hello Laravel 5!
Hello Laravel 5!
Tam¨¢s Erd¨¦lyi
?
Cgi r?viden ajmar
Cgi r?viden ajmarCgi r?viden ajmar
Cgi r?viden ajmar
bonami2014
?
Flash ¨¦s PHP Kommunik¨¢ci¨®
Flash ¨¦s PHP Kommunik¨¢ci¨®Flash ¨¦s PHP Kommunik¨¢ci¨®
Flash ¨¦s PHP Kommunik¨¢ci¨®
tlof
?
[HUN] Zombi t?zr¨®ka, avagy mire k¨¦pes egy rosszindulat¨² b?ng?sz? kieg¨¦szit?
[HUN] Zombi t?zr¨®ka, avagy mire k¨¦pes egy rosszindulat¨² b?ng?sz? kieg¨¦szit?[HUN] Zombi t?zr¨®ka, avagy mire k¨¦pes egy rosszindulat¨² b?ng?sz? kieg¨¦szit?
[HUN] Zombi t?zr¨®ka, avagy mire k¨¦pes egy rosszindulat¨² b?ng?sz? kieg¨¦szit?
Zoltan Balazs
?
Univerzalis Entitas Kezeles - Laravel
Univerzalis Entitas Kezeles - LaravelUniverzalis Entitas Kezeles - Laravel
Univerzalis Entitas Kezeles - Laravel
Peter Perger
?
Amit mindig is tudni akart¨¢l az LDAP-r¨®l, de sosem merted megk¨¦rdezni
Amit mindig is tudni akart¨¢l az LDAP-r¨®l, de sosem merted megk¨¦rdezniAmit mindig is tudni akart¨¢l az LDAP-r¨®l, de sosem merted megk¨¦rdezni
Amit mindig is tudni akart¨¢l az LDAP-r¨®l, de sosem merted megk¨¦rdezni
Ferenc Szalai
?
T¨²l¨¦l¨¦s a H¨¢rom Bet?s R?vid¨ªt¨¦sek vil¨¢g¨¢ban
T¨²l¨¦l¨¦s a H¨¢rom Bet?s R?vid¨ªt¨¦sek vil¨¢g¨¢banT¨²l¨¦l¨¦s a H¨¢rom Bet?s R?vid¨ªt¨¦sek vil¨¢g¨¢ban
T¨²l¨¦l¨¦s a H¨¢rom Bet?s R?vid¨ªt¨¦sek vil¨¢g¨¢ban
Open Academy
?
Szerver oldali fejleszt¨¦s korszer? m¨®dszerekkel C# nyelven
Szerver oldali fejleszt¨¦s korszer? m¨®dszerekkel C# nyelvenSzerver oldali fejleszt¨¦s korszer? m¨®dszerekkel C# nyelven
Szerver oldali fejleszt¨¦s korszer? m¨®dszerekkel C# nyelven
Kriszti¨¢n Gyula T¨®th
?
APACHE PHP MYSQL telep¨ªt¨¦se
APACHE PHP MYSQL telep¨ªt¨¦seAPACHE PHP MYSQL telep¨ªt¨¦se
APACHE PHP MYSQL telep¨ªt¨¦se
Pasar¨¦ti Gimi
?
LESS, mint css preprocessor
LESS, mint css preprocessorLESS, mint css preprocessor
LESS, mint css preprocessor
Levente Kiraly
?
PHP alkalmaz¨¢sok min?s¨¦gbiztos¨ªt¨¢sa
PHP alkalmaz¨¢sok min?s¨¦gbiztos¨ªt¨¢saPHP alkalmaz¨¢sok min?s¨¦gbiztos¨ªt¨¢sa
PHP alkalmaz¨¢sok min?s¨¦gbiztos¨ªt¨¢sa
Ferenc Kov¨¢cs
?
Nagy terhel¨¦s? webes rendszerek fejleszt¨¦se
Nagy terhel¨¦s? webes rendszerek fejleszt¨¦seNagy terhel¨¦s? webes rendszerek fejleszt¨¦se
Nagy terhel¨¦s? webes rendszerek fejleszt¨¦se
J¨¢nos P¨¢sztor
?
Hogyan optimaliz¨¢ljunk C/C++ k¨®dokat!
Hogyan optimaliz¨¢ljunk C/C++ k¨®dokat!Hogyan optimaliz¨¢ljunk C/C++ k¨®dokat!
Hogyan optimaliz¨¢ljunk C/C++ k¨®dokat!
Open Academy
?
Objektum-orinet¨¢lt m¨¦r¨¦sek a gyakorlatban
Objektum-orinet¨¢lt m¨¦r¨¦sek a gyakorlatbanObjektum-orinet¨¢lt m¨¦r¨¦sek a gyakorlatban
Objektum-orinet¨¢lt m¨¦r¨¦sek a gyakorlatban
Antal Orcsik
?
Cgi r?viden ajmar
Cgi r?viden ajmarCgi r?viden ajmar
Cgi r?viden ajmar
bonami2014
?
Flash ¨¦s PHP Kommunik¨¢ci¨®
Flash ¨¦s PHP Kommunik¨¢ci¨®Flash ¨¦s PHP Kommunik¨¢ci¨®
Flash ¨¦s PHP Kommunik¨¢ci¨®
tlof
?
[HUN] Zombi t?zr¨®ka, avagy mire k¨¦pes egy rosszindulat¨² b?ng?sz? kieg¨¦szit?
[HUN] Zombi t?zr¨®ka, avagy mire k¨¦pes egy rosszindulat¨² b?ng?sz? kieg¨¦szit?[HUN] Zombi t?zr¨®ka, avagy mire k¨¦pes egy rosszindulat¨² b?ng?sz? kieg¨¦szit?
[HUN] Zombi t?zr¨®ka, avagy mire k¨¦pes egy rosszindulat¨² b?ng?sz? kieg¨¦szit?
Zoltan Balazs
?
Univerzalis Entitas Kezeles - Laravel
Univerzalis Entitas Kezeles - LaravelUniverzalis Entitas Kezeles - Laravel
Univerzalis Entitas Kezeles - Laravel
Peter Perger
?
Amit mindig is tudni akart¨¢l az LDAP-r¨®l, de sosem merted megk¨¦rdezni
Amit mindig is tudni akart¨¢l az LDAP-r¨®l, de sosem merted megk¨¦rdezniAmit mindig is tudni akart¨¢l az LDAP-r¨®l, de sosem merted megk¨¦rdezni
Amit mindig is tudni akart¨¢l az LDAP-r¨®l, de sosem merted megk¨¦rdezni
Ferenc Szalai
?

More from Open Academy (18)

BDD demisztifik¨¢lva
BDD demisztifik¨¢lvaBDD demisztifik¨¢lva
BDD demisztifik¨¢lva
Open Academy
?
What SQL should actually be...
What SQL should actually be...What SQL should actually be...
What SQL should actually be...
Open Academy
?
Dev tools rendering & memory profiling
Dev tools rendering & memory profilingDev tools rendering & memory profiling
Dev tools rendering & memory profiling
Open Academy
?
Firefox OS: hackelni k?nny?
Firefox OS:  hackelni k?nny?Firefox OS:  hackelni k?nny?
Firefox OS: hackelni k?nny?
Open Academy
?
BlackBerry10 alap¨² nat¨ªv alkalmaz¨¢sfejleszt¨¦s
BlackBerry10 alap¨² nat¨ªv alkalmaz¨¢sfejleszt¨¦sBlackBerry10 alap¨² nat¨ªv alkalmaz¨¢sfejleszt¨¦s
BlackBerry10 alap¨² nat¨ªv alkalmaz¨¢sfejleszt¨¦s
Open Academy
?
Android fejleszt¨¦s
Android fejleszt¨¦sAndroid fejleszt¨¦s
Android fejleszt¨¦s
Open Academy
?
Magvas gondolatok
Magvas gondolatokMagvas gondolatok
Magvas gondolatok
Open Academy
?
A Windows Phone vil¨¢ga
A Windows Phone vil¨¢gaA Windows Phone vil¨¢ga
A Windows Phone vil¨¢ga
Open Academy
?
Okostelefonok ¨¦s t¨¢blag¨¦pek menedzsmentje
Okostelefonok ¨¦s t¨¢blag¨¦pek menedzsmentjeOkostelefonok ¨¦s t¨¢blag¨¦pek menedzsmentje
Okostelefonok ¨¦s t¨¢blag¨¦pek menedzsmentje
Open Academy
?
Windows 8
Windows 8Windows 8
Windows 8
Open Academy
?
Ipari felh? infrastrukt¨²r¨¢k a gyakorlatban
Ipari felh? infrastrukt¨²r¨¢k a gyakorlatbanIpari felh? infrastrukt¨²r¨¢k a gyakorlatban
Ipari felh? infrastrukt¨²r¨¢k a gyakorlatban
Open Academy
?
Adminisztrat¨ªv protokollok ellen?rz¨¦si lehet?s¨¦gei
Adminisztrat¨ªv protokollok ellen?rz¨¦si lehet?s¨¦geiAdminisztrat¨ªv protokollok ellen?rz¨¦si lehet?s¨¦gei
Adminisztrat¨ªv protokollok ellen?rz¨¦si lehet?s¨¦gei
Open Academy
?
Napl¨®z¨¢s a gyakorlatban
Napl¨®z¨¢s a gyakorlatbanNapl¨®z¨¢s a gyakorlatban
Napl¨®z¨¢s a gyakorlatban
Open Academy
?
Hogy ker¨¹l a csizma az asztalra?
Hogy ker¨¹l a csizma az asztalra?Hogy ker¨¹l a csizma az asztalra?
Hogy ker¨¹l a csizma az asztalra?
Open Academy
?
AGILIS / SCRUM fejleszt¨¦s
AGILIS / SCRUM fejleszt¨¦sAGILIS / SCRUM fejleszt¨¦s
AGILIS / SCRUM fejleszt¨¦s
Open Academy
?
Multiplatform mobil fejleszt¨¦sek
Multiplatform mobil fejleszt¨¦sekMultiplatform mobil fejleszt¨¦sek
Multiplatform mobil fejleszt¨¦sek
Open Academy
?
Verzi¨®k?vet? rendszerek alkalmaz¨¢sa fejleszt¨¦si projektekben
Verzi¨®k?vet? rendszerek alkalmaz¨¢sa fejleszt¨¦si projektekbenVerzi¨®k?vet? rendszerek alkalmaz¨¢sa fejleszt¨¦si projektekben
Verzi¨®k?vet? rendszerek alkalmaz¨¢sa fejleszt¨¦si projektekben
Open Academy
?
BDD demisztifik¨¢lva
BDD demisztifik¨¢lvaBDD demisztifik¨¢lva
BDD demisztifik¨¢lva
Open Academy
?
What SQL should actually be...
What SQL should actually be...What SQL should actually be...
What SQL should actually be...
Open Academy
?
Dev tools rendering & memory profiling
Dev tools rendering & memory profilingDev tools rendering & memory profiling
Dev tools rendering & memory profiling
Open Academy
?
Firefox OS: hackelni k?nny?
Firefox OS:  hackelni k?nny?Firefox OS:  hackelni k?nny?
Firefox OS: hackelni k?nny?
Open Academy
?
BlackBerry10 alap¨² nat¨ªv alkalmaz¨¢sfejleszt¨¦s
BlackBerry10 alap¨² nat¨ªv alkalmaz¨¢sfejleszt¨¦sBlackBerry10 alap¨² nat¨ªv alkalmaz¨¢sfejleszt¨¦s
BlackBerry10 alap¨² nat¨ªv alkalmaz¨¢sfejleszt¨¦s
Open Academy
?
Android fejleszt¨¦s
Android fejleszt¨¦sAndroid fejleszt¨¦s
Android fejleszt¨¦s
Open Academy
?
A Windows Phone vil¨¢ga
A Windows Phone vil¨¢gaA Windows Phone vil¨¢ga
A Windows Phone vil¨¢ga
Open Academy
?
Okostelefonok ¨¦s t¨¢blag¨¦pek menedzsmentje
Okostelefonok ¨¦s t¨¢blag¨¦pek menedzsmentjeOkostelefonok ¨¦s t¨¢blag¨¦pek menedzsmentje
Okostelefonok ¨¦s t¨¢blag¨¦pek menedzsmentje
Open Academy
?
Ipari felh? infrastrukt¨²r¨¢k a gyakorlatban
Ipari felh? infrastrukt¨²r¨¢k a gyakorlatbanIpari felh? infrastrukt¨²r¨¢k a gyakorlatban
Ipari felh? infrastrukt¨²r¨¢k a gyakorlatban
Open Academy
?
Adminisztrat¨ªv protokollok ellen?rz¨¦si lehet?s¨¦gei
Adminisztrat¨ªv protokollok ellen?rz¨¦si lehet?s¨¦geiAdminisztrat¨ªv protokollok ellen?rz¨¦si lehet?s¨¦gei
Adminisztrat¨ªv protokollok ellen?rz¨¦si lehet?s¨¦gei
Open Academy
?
Napl¨®z¨¢s a gyakorlatban
Napl¨®z¨¢s a gyakorlatbanNapl¨®z¨¢s a gyakorlatban
Napl¨®z¨¢s a gyakorlatban
Open Academy
?
Hogy ker¨¹l a csizma az asztalra?
Hogy ker¨¹l a csizma az asztalra?Hogy ker¨¹l a csizma az asztalra?
Hogy ker¨¹l a csizma az asztalra?
Open Academy
?
AGILIS / SCRUM fejleszt¨¦s
AGILIS / SCRUM fejleszt¨¦sAGILIS / SCRUM fejleszt¨¦s
AGILIS / SCRUM fejleszt¨¦s
Open Academy
?
Multiplatform mobil fejleszt¨¦sek
Multiplatform mobil fejleszt¨¦sekMultiplatform mobil fejleszt¨¦sek
Multiplatform mobil fejleszt¨¦sek
Open Academy
?
Verzi¨®k?vet? rendszerek alkalmaz¨¢sa fejleszt¨¦si projektekben
Verzi¨®k?vet? rendszerek alkalmaz¨¢sa fejleszt¨¦si projektekbenVerzi¨®k?vet? rendszerek alkalmaz¨¢sa fejleszt¨¦si projektekben
Verzi¨®k?vet? rendszerek alkalmaz¨¢sa fejleszt¨¦si projektekben
Open Academy
?

Webm?ves Kelemen tan¨¢csai, avagy mi kell a PHP fal¨¢ba?

  • 1. Webm?ves Kelemen tan¨¢csai, avagy mi kell a PHP fal¨¢ba? Buher¨¢tor, Buher¨¢tor, BuheraBlog
  • 2. Bevezet? ? ¡°0% ****, 100% tapasztalat¡± ? ? ¡­¨¦s n¨¦h¨¢ny technikai finoms¨¢g ? A webalkalmaz¨¢sok a v¨¢llalati infrastrukt¨²ra tipikus gyenge pontjai ? Egyedi alkalmaz¨¢s ? Nem ny¨²lunk hozz¨¢, ameddig m? m?k?dik ? A PHP remek ¨¢llatorvosi l¨® ? J¨®l ismert, j¨®l olvashat¨®, egyszer? ? H¨ªrhedten bugos k¨®dok (vagy csak rossz PR?)
  • 3. PHP ¨C Mi¨¦rt szeretj¨¹k? K?nnyen tanulhat¨®, gyorsan fejleszthet? C-like syntax Dynamic Typing A Webre sz¨¢nt¨¢k K?nnyen telep¨ªthet? Felm¨¢solom, megy ? K?nny? konfigur¨¢ci¨®, ak¨¢r fut¨¢sid?ben fut¨¢sid? J¨® platform t¨¢mogatotts¨¢g J¨® dokument¨¢ci¨®, sz¨¦les felhaszn¨¢l¨®i b¨¢zis OOP (>=PHP5) GPL licensz
  • 4. PHP ¨C Mi¨¦rt nem szeretj¨¹k L¨¢sd az el?z? di¨¢t :) K¨®der Pisti kedvenc nyelve Be¨¦p¨ªtett f¨¹ggv¨¦ny-v¨ªzfej f¨¹ggv¨¦ny- K?vetkezetlen elnevez¨¦sek, f¨¹ggv¨¦ny-szignat¨²r¨¢k f¨¹ggv¨¦ny- ? strlen(), str_split() A b?s¨¦g zavara ? mysql_escape_string(), mysql_real_escape_string(), addslashes() ¡­ Biztons¨¢g...? Y U No Unicode?
  • 5. Lehet j¨®l is ³¦²õ¾±²Ô¨¢±ô²Ô¾±
  • 6. PHP biztons¨¢g - ¨®voda A webszerver korl¨¢tozott jogokkal fut, ugye? A register_globals ki van kapcsolva, ugye? URL- URL-eket nem lehet megnyitni, ugye? megnyitni, ugye? A felhaszn¨¢l¨®k nem l¨¢tj¨¢k a hiba¨¹zeneteket, ugye?
  • 7. A PHP-s t¨ªpushiba PHP- ? File Include hib¨¢k ? Azonnali k¨®dfuttat¨¢s ? Helyi forr¨¢sb¨®l ? T¨¢voli forr¨¢sb¨®l ? Egy kis eml¨¦keztet?¡­
  • 8. Local File Include ? <?include(¡°files/¡±.$_GET[¡®inc¡¯]);?> ? Mit futtathatunk? futtathatunk? ? Alkalmaz¨¢son kereszt¨¹l felt?lt?tt f¨¢jlok ? Ideiglenes f¨¢jlok ? Napl¨®f¨¢jlok (pl. PHP k¨®d a User Agentben) Agentben) ? Az alkalmaz¨¢s saj¨¢t f¨¢jljait rossz helyen include- include- olva igen hasznos hiba¨¹zenetek kaphat¨®ak
  • 9. Remote File Include ? <?include($_GET[¡®inc¡¯].¡±.php¡±);?> ? allow_url_fopen=True ? Mit futtathatunk? ? T¨¢voli webkiszolg¨¢l¨®n elhelyezett tetsz? tetsz?leges k¨®dot! ? Legt?bbsz?r egyben LFI is¡­
  • 10. Basedir restriction ? Minden f¨¢jlkezel? funkci¨®ban ellen? ellen?rizni kellene a be¨¢ll¨ªt¨¢st ?s minden felhaszn¨¢lt C k?nyvt¨¢rban is¡­ 5.2.9, 5.2.12, 5.3.0, 5.3.1 ¡­ mind megker¨¹lhet? MOPB: ?not simple safe_mode, open_basedir bypass vulnerabilities¡± Tudta- Tudta-e ?n, hogy 5.2.16 ill. 5.3.4 el?tt az itt megadott ¨¦rt¨¦kek, el? csak prefixek, nem konkr¨¦t k?nyvt¨¢rak voltak? /home/b => /home/b/ , /home/bizalmas/
  • 11. Safe Mode Egy pr¨®b¨¢lkoz¨¢s a vesz¨¦lyes f¨¹ggv¨¦nyek letilt¨¢s¨¢ra / korl¨¢toz¨¢s¨¢ra Minden ¨¦rintett funkci¨®ban ellen? ellen?rizni kellene a be¨¢ll¨ªt¨¢st Az eredm¨¦ny: hamis biztons¨¢g¨¦rzet ?safe mode is an attempt to solve the shared-server security problem. It is shared- architecturally incorrect to try to solve this problem at the PHP level, but since the alternatives at the web server and OS levels aren't very realistic, many people, especially ISP's, use safe mode for now¡± ?This is a still probably incomplete and possibly incorrect listing of the functions limited by safe mode. ¡± 5.3.0 ¨®ta deprecated, 6-ban nincs 6-
  • 13. Vesz¨¦lyes f¨¹ggv¨¦nyek - Parancsfuttat¨¢s passthru apache_child_terminate exec chown chgrp pnctl_exec link proc_open symlink popen posix_kill system posix_mkfifo shell_exec posix_setpgid posix_setsid register_shutdown_function posix_setuid register_tick_function proc_close dl proc_get_status eval proc_nice preg_replace [!] proc_terminate Putenv ... Touch ...
  • 14. Vesz¨¦lyes f¨¹ggv¨¦nyek ¨C H¨¢l¨®zat ftp_connect ftp_ssl_connect fsockopen pfsockopen socket_bind socket_connect socket_listen socket_create_listen socket_accept socket_getpeername socket_send ...
  • 15. Vesz¨¦lyes f¨¹ggv¨¦nyek A list¨¢nak m¨¦g kor¨¢nt sincs v¨¦ge A modulok nagy r¨¦sz¨¦t m¨¦g nem is l¨¢ttuk! ? ? ?jtem¨¦ny: Folyamatosan b?v¨¹l? gy?jtem¨¦ny: https://github.com/v- https://github.com/v-p-b/DangerousPHPFunctions Erre ¨ªrjon valaki IDS szab¨¢lyt, logelemz? stb.! logelemz?t, Az eval()-t le sem lehet tiltani eval()- A disable_functions legal¨¢bb j¨®l kezelhet? Szint¨¦n hasznos INI param¨¦terek: extension_dir, enable_dl
  • 16. F¨¢jl fel?lt¨¦s Kedvenc¨¹nk, tipikus gyenge pont Sok helyen el?fordul Legal¨¢bb 80% sebezhet? Legt?bb esetben azonnal k¨®dot futtathatunk ?s¨¦gek Alattomos hibalehet?s¨¦gek
  • 17. F¨¢jl felt?lt¨¦s - ?k?lszab¨¢lyok ?r¨¦s Feh¨¦rlist¨¢s sz?r¨¦s kiterjeszt¨¦sekre De: Egy JPG-t is lehet futtatni include() hib¨¢val! JPG- Nevezz¨¹k ¨¢t a felt?lt?tt f¨¢jlt! A f¨¢jln¨¦v is tartalmazhat shell, PHP utas¨ªt¨¢sokat! Ha JPG-re sz¨¢m¨ªtunk, legyen ez az ¨²j kiterjeszt¨¦s! JPG- Ha nem musz¨¢j, ne a webroot al¨¢ t?lts¨¹nk fel! Egy diszp¨¦cser szkript jogosults¨¢got ellen? ellen?rizhet, MIME t¨ªpust ¨¢ll¨ªthat stb. A k¨¦peket transzform¨¢ljuk! A dupla kiterjeszt¨¦seket ker¨¹lj¨¹k!
  • 18. F¨¢jlfelt?lt¨¦s ¨C Az Apache tr¨¹kk ?r¨¹nk Feh¨¦rlist¨¢val sz?r¨¹nk kiterjeszt¨¦seket $allowed=array(?.avi¡±,¡±.mov¡±,¡±.qt¡±); if (inarray(strrchr($name,'.'),$allowed)) return ACCEPT; Felt?lt?k egy shell.php.qt nev? f¨¢jlt A kiterjeszt¨¦s megfelel? Az Apache viszont nem ismeri a .qt kiterjeszt¨¦st, ez¨¦rt a k?vetkez?t veszi figyelembe kiszolg¨¢l¨¢skor! ?t Van egy PHP shell¨¹nk...
  • 19. F¨¢jlfelt?lt¨¦s ¨C IIS-en IIS- ugyanez <= IIS 6 evil.asp;.jpg vagy evil.asp:.jpg A ; ill. : ut¨¢ni r¨¦szeket a kiszolg¨¢l¨® nem veszi figyelembe
  • 20. F¨¢jlfelt?lt¨¦s - Form¨¢tumellen? ¹ó´Ç°ù³¾¨¢³Ù³Ü³¾±ð±ô±ô±ð²Ô?°ù³ú¨¦²õ
  • 21. F¨¢jlfelt?lt¨¦s - Form¨¢tumellen? ¹ó´Ç°ù³¾¨¢³Ù³Ü³¾±ð±ô±ô±ð²Ô?°ù³ú¨¦²õ
  • 22. K¨¦pek ¨¢tm¨¦retez¨¦se ? image_resize.php?width=100&height=100 image_resize.php?width=100&height=100 ? ¡°?r?m, b¨®dott¨¢¡± ?r?m, b¨®dott¨¢¡± ? image_resize.php?width=10000&height=10000 image_resize.php?width=10000&height=10000 ? DoS, DoS, nem?r?m ? Nem csak a webes hib¨¢kra kell figyelni! figyelni! ? ¡°A t¨¢mad¨¢sok soha nem lesznek rosszabbak¡± rosszabbak¡±
  • 23. F¨¢jlfelt?lt¨¦s - RFC1867 Gynvael Coldwind, 2011 ?, Nem jellemz?, de nagyon sz¨¦p :) Felt¨¦telezz¨¹k, hogy m¨¢r van egy helyi include hiba Linuxon ¨¢ltal¨¢ban ez sem el¨¦g Nagyr¨¦szt Windows lehet? lehet?s¨¦g
  • 26. F¨¢jlfelt?lt¨¦s - RFC1867 A felt?lt?tt f¨¢jlok v¨¦letlenszer? nevet kapnak ellen?rz¨¦s el?tt A k?nyvt¨¢r ¨¢ltal¨¢ban default Windowson 16-bit v¨¦letlen ¨C nem t¨²l sok 16- De a Windows ¨¦rtelmezi a wildcardokat !(!!1) !(!!1 ?leges << Tetsz?leges karakterl¨¢nc < Tetsz?leges karakter ? Els? egyez¨¦s kiv¨¢laszt¨¢sa
  • 27. Adatb¨¢zis el¨¦r¨¦s ? Az SQL injection rossz, ¨¦rtem? rossz, ¨¦rtem? ? Ugye mindenki tudja mi az az SQL injection¡­? ? MySQL- MySQL-hez van remek escape f¨¹ggv¨¦ny! f¨¹ggv¨¦ny! ? mysql_escape_string() mysql_escape_string() ? Azaz m¨¦gsem olyan j¨®¡­ j¨®¡­
  • 28. Adatb¨¢zis el¨¦r¨¦s ¨C SQL Smuggling ? A DBMS okosan az ¨¦rv¨¦nyes locale szerint pr¨®b¨¢lja ¨¢talak¨ªtani a sp¨¦ci karaktereket ? ? -> A, ?->I, ?->U ¡­ ? - ?- ? A mysql_escape_string() nem veszi figyelembe az adatb¨¢zis locale-t locale- ? Az PHP escape ¨¦s a DBMS konverzi¨® ut¨¢n ¨²jra injectionre alkalmas karakterl¨¢nc ¨¢llhat el? ? http://wechall.net/challenge/addslashes/index.php ? ?ben ?l?ben m¨¦g nem l¨¢ttam ilyet, de ¡­
  • 29. Adatb¨¢zis el¨¦r¨¦s Ugye senki sem karakterl¨¢nck¨¦nt pakolja ?ssze a lek¨¦rdez¨¦seit?
  • 30. Adatb¨¢zis el¨¦r¨¦s - Prepared statements ? Hat¨¦kony! Hat¨¦kony! ? Feldolgoz¨¢s, ford¨ªt¨¢s, tervez¨¦s, stb. Feldolgoz¨¢s, ford¨ªt¨¢s, tervez¨¦s, stb. csak egyszer! egyszer! ? Biztons¨¢gos! Biztons¨¢gos! ? Adat ¨¦s SQL elv¨¢lasztva ? T¨ªpusegyeztet¨¦s ? PHP- PHP-ban tipikusan valamilyen absztrakci¨®s r¨¦tegen kereszt¨¹l ? PDO ? ODBC ? ¡­
  • 31. Adatb¨¢zis el¨¦r¨¦s - ORM ? Object Relational Mapping ? DB entit¨¢s -> Objektum ? A legt?bb keretrendszer tudja ? Szint¨¦n biztons¨¢gos ? Ha a keretrendszerben nem sz¨²rtak el valamit¡­ valamit¡­ ? Nagyon k¨¦nyelmes ? PHP ¨¦s SQL elv¨¢lasztva ? Sokszor nem hat¨¦kony ? Nem minden queryt lehet megfogalmazni
  • 32. Adatb¨¢zis el¨¦r¨¦s - ORM ? A ¡°fogalmaz¨¢si¡± probl¨¦m¨¢kat sokszor a subquery-k subquery- okozz¨¢k ? JOIN- JOIN-olj okosan, subquery-k ¨¢ltal¨¢ban subquery- feleslegesek! ? Haszn¨¢ljunk VIEW-kat! VIEW- ? Haszn¨¢ljunk t¨¢rolt elj¨¢r¨¢sokat! ? Melyekben figyel¨¹nk az SQL injectionre :P
  • 33. S¨¹ti attributumok - HttpOnly ? Tank?nyvi XSS p¨¦lda: <script>alert(document.cookie)</script> ? HttpOnly: Kliens oldali szkriptek nem f¨¦rhetnek hozz¨¢ a s¨¹tihez! ? ? B?ng¨¦sz? feature, nem biztos, hogy mindenhol implement¨¢lt¨¢k! ? ?l Ett?l a XSS m¨¦g vesz¨¦lyes marad! ? Teljes kontroll a felhaszn¨¢l¨® jogosults¨¢gaival!
  • 34. S¨¹ti attributumok - HttpOnly ? PHP- PHP-ban alap¨¦rtelmezetten nincs be¨¢ll¨ªtva a flag a session- session-?kre ? php.ini: session.cookie_httponly=On ? PHP 5.2.0-t?l 5.2.0- ? session_set_cookie_params() ? M¨¢s s¨¹tikn¨¦l: setcookie() utols¨® param¨¦tere
  • 35. S¨¹ti attributumok - Secure ? Kapkodjuk el a h¨¢l¨®zaton r?pk?d? s¨¹tiket, ¨¦s jelentkezz¨¹nk be vel¨¹k ? https://github.com/asciimoo/whol ? Firesheep (es¨¦lyes Most Overhyped Extension) ? B¨¢r a kommunik¨¢ci¨® HTTPS-en zajlik, HTTPS- ? kik¨¦nyszer¨ªthet? a s¨¹ti titkos¨ªtatlan k¨¹ld¨¦se ? <img src=/open_academy/php-security-2011052640/¡°http:/bank.com/logo.png¡±/> src=/open_academy/php-security-2011052640/¡°http:/bank.com/logo.png¡±/> ? Secure: A s¨¹ti csak titkos¨ªtott csatorn¨¢n tov¨¢bb¨ªthat¨®! ? ? B?ng¨¦sz? feature, nem biztos, hogy mindenhol implement¨¢lt¨¢k!
  • 36. S¨¹ti attributumok - Secure ? PHP- PHP-ban alap¨¦rtelmezetten nincs be¨¢ll¨ªtva a flag a session- session-?kre ? php.ini: session.cookie_secure=On ? PHP 4.0.4-t?l 4.0.4- ? session_set_cookie_params() ? M¨¢s s¨¹tikn¨¦l: setcookie() utols¨® el? param¨¦tere el?tti
  • 37. CSRF ? Az XSS meg az SQLi lej¨¢rt lemez ? Mindenki ismeri ? Mindenhol m?k?dik¡­ ? A Cross-Site Request Forgery is lej¨¢rt lemez, de alig Cross- ismerik ? ¡°Mi¨¦rt kellene nekem ilyesmivel foglalkoznom?¡± ? Jogos k¨¦rd¨¦s!
  • 38. CSRF ? Autentik¨¢ci¨® ¨¢ltal¨¢ban s¨¹tikkel ? ? A b?ng¨¦sz? egy s¨¹tit¨¢rat haszn¨¢l ? A felhaszn¨¢l¨® t?bb lapon b?ng¨¦szik ? Ha egy idegen oldalon elhelyezett form k¨¹ld adatot egy m¨¢sik oldalra, ahov¨¢ a felhaszn¨¢l¨® be van ? jelentkezve, a b?ng¨¦sz? automatikusan k¨¹ldi az ¨¦rv¨¦nyes s¨¹tit
  • 39. CSRF
  • 40. CSRF ? Haszn¨¢ljunk v¨¦letlen adatokat tartalmaz¨® mez? mez?ket minden formon ? Ez a token¡­ ? ennek a felhaszn¨¢l¨®nak¡­ ? erre az ?rlapra lett kiadva ? Referer valid¨¢ci¨® ? Az ¨¢ldozat nem fogja meghamis¨ªtani a saj¨¢t Referer- Referer-¨¦t ? Ha titkos¨ªtatlan a csatorna, akkor m¨¢r ¨²gyis mindegy
  • 41. V¨¦delem - WAF ? Web Application Firewall ? Layer7 ? Komoly helyen alapkell¨¦k ? Kiddie- Kiddie-k ¨¦s t?meges, automatiz¨¢lt t¨¢mad¨¢sok ellen kiv¨¢l¨® ? Aki ¨¢t akar menni rajta, az el? -ut¨®bb ¨¢t fog menni. el?bb el?bb-
  • 42. V¨¦delem - PHPIDS ? include()- include()-dal beh¨²zhat¨® PHP k?nyvt¨¢r ? ? Modulk¨¦nt el¨¦rhez? t?bb CMS-hez CMS- ? Impressz¨ªv szab¨¢lyk¨¦szlet ? J¨®l karbantartott ? De hol haszn¨¢lj¨¢k?
  • 43. V¨¦delem - Suhosin ? Patch ? BoF v¨¦delem ? Format String v¨¦delem ? L¨¢ncolt list¨¢k, hash-t¨¢bl¨¢k v¨¦delme list¨¢k, hash- ? FreeBSD realpath() realpath() ? ¡­ ? Extension ? Megregul¨¢zott preg_replace() preg_replace() ? Titkos¨ªtott s¨¹tik ? V¨¦gtelen rekurzi¨®k meg¨¢ll¨ªt¨¢sa ? ¡­ ? ?s m¨¦g rengeteg hasznos funkci¨®
  • 44. V¨¦delem ¨C K¨®d review ? K?lts¨¦ghat¨¦kony, K?lts¨¦ghat¨¦kony, testreszabhat¨® megold¨¢s: grep megold¨¢s: ? grep ¡®mysql_query¡¯ mysql_query¡¯ ? grep ¡®SELECT¡¯ ? grep ¡®$_GET¡¯ ? grep ¡®eval(¡¯ eval(¡¯ ? grep ¡®print_r(¡¯ print_r(¡¯ ? Csak a fant¨¢zia szab hat¨¢rt! ? hat¨¢rt!
  • 45. Eml¨¦keztet? ? Webalkalmaz¨¢s nem l¨¦tezik ?n¨¢ll¨®an ? HTTP szerver ? B?ng¨¦sz? ? DBMS ? T¨¢voli szolg¨¢ltat¨¢sok ? ??? ? ?nek Egy j¨® fejleszt?nek ismernie kell az ¨¢ltala fejlesztett alkalmaz¨¢s k?rnyezet¨¦t is! ? A webes t¨¢mad¨¢sok ¨¢ltal¨¢ban nem technol¨®gia-specifikusak technol¨®gia-
  • 46. K?sz?n?m a figyelmet! figyelmet!
  • 47. Linkek ? http://www.owasp.org ? http://www.hardened- http://www.hardened-php.net/ ? http://www.exploit- http://www.exploit-db.com/download_pdf/17010 ? http://www.exploit- http://www.exploit-db.com/download_pdf/15955 ? http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real- http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real- escape- escape-string ? http://blog.mindedsecurity.com/2009/05/http-parameter- http://blog.mindedsecurity.com/2009/05/http-parameter- pollution-new-web- pollution-new-web-attack.html ? http://blog.mindedsecurity.com/2009/05/client-side-http- http://blog.mindedsecurity.com/2009/05/client-side-http- parameter- parameter-pollution.html ? http://resources.infosecinstitute.com/finding-bugs-in-php- http://resources.infosecinstitute.com/finding-bugs-in-php- using- using-grep/ ? http://buhera.blog.hu ;)