際際滷

際際滷Share a Scribd company logo
Drupal油biztons叩g




油       油
Ki油c辿lpont?




油    油
mi油nem油vagyunk油c辿lpontok
   Az油adatok油辿rt辿kesek油
     (pl.油tematiz叩lt油email油
     c鱈mlista油az油{user}油
     t叩bl叩b坦l)
   A油l叩togat坦k油辿rt辿kesek
   Minden油g辿p油sz叩m鱈t油
     (botnetek)
   Vand叩lkodni油j坦油:)


        油               油
Ki油c辿lpont?




    Mindenki

油     油
Biztons叩gr坦l油叩ltal叩ban
   Csak油biztons叩gos油辿s油nem油
      biztons叩gos油oldal油van,油nincs油
      f辿lig油biztons叩gos
   Egy油rossz油sor油k坦d油is油el辿g油
      ahhoz,油hogy油b叩rki油b叩rmit油
      tehessen油az油oldalunkkal油/油
      szerver端nkkel
   A油webfejleszt油is油programoz坦,油
      ugyan炭gy油kell油nek端nk油is油
      t旦rdn端nk油a油biztons叩ggal,油
      mint油annak,油aki油az油amerikai油
      v辿delmi油hivatalnak油fejleszt.


         油                  油
H叩l坦zati油biztons叩g
   Titkos鱈tott油protokollok油haszn叩lata油(FTP油辿s油HTTP油
      (felt旦lt辿s)油ker端lend)
   Wi足Fi油eset辿n油WPA油titkos鱈t叩s
   Total油Commander油nem油jelsz坦megrz




        油            油
gy油hallgathatlak油le油t辿ged




油           油
B叩rki油lehallgathat
   Nem油csak油a油k辿pzett油crackerek
            sudo油ifconfig油wlan0油down
            sudo油iwconfig油wlan0油mode油monitor
            sudo油ifconfig油wlan0油up
            sudo油wireshark




        油                 油
Megold叩sok
   SSL足lel油titkos鱈tott油protokollok油haszn叩lata:
              FTPS
              SFTP
              HTTPS
              SSH
   VPN




           油            油
Szerverbe叩ll鱈t叩sok
   FastCGI油(DDoS油ellen油jobb)
   PHP
              suhosin油haszn叩lata
              php.ini
                       open_basedir
                       disabled_functions
                       disabled_classes
                       safe_mode油kikapcsol叩sa油(hamis油biztons叩g辿rzet,油
                          gyakorlatban油nem油sokat油v辿d)


           油                     油
Formok油biztons叩ga
   a油hidden油(辿s油b叩rmilyen油m叩s)油mezk油tartalmai油
      ugyan炭gy油m坦dos鱈that坦ak油a油felhaszn叩l坦k油叩ltal!油
      (meglepen油sok油oldal油t旦rhet油鱈gy)
   szerencs辿re油ezt油a油form油api油kiv辿di




        油             油
JavaScript
   A油JavaScript油叩ltal油v辿gzett油ellenrz辿s油csak油k辿nyelmi油
     szolg叩ltat叩s,油minden油ellenrz辿st油el油kell油v辿gezni油a油
     szerver油oldalon油is!




        油             油
Drupal油biztons叩g




油       油
Alapok
   Soha,油de油soha油ne油ny炭ljunk油a油core油k坦dhoz!




        油            油
Alapok
   Haszn叩ljuk油a油Drupal油f端ggv辿nyeit油辿s油API足jait
              N叩lunk油tapasztaltabb油emberek油鱈rt叩k
              K旦nny撤油megtanulni油ket
              Hossz炭油t叩von油炭gyis油gyorsabban油v辿gezz端k油el油a油
                feladatainkat




           油                 油
Alapok
   Minim叩lis油jogosults叩gok油mindenkinek
   A油k旦vetkez油jogosults叩gok油megad叩s叩val油odaadjuk油
     a油siteunkat:
              Administer油content油types
              Administer油users
              Administer油permissions
              Administer油filters
              Administer油site油configuration


           油                  油
Input油formats
   Amit油csak油nagyon油megb鱈zhat坦油felhaszn叩l坦knak油
     enged端nk:
              Full油HTML
              PHP




           油               油
Access油control
   Haszn叩ld:
              node_access
              user_access
              hook_menu




           油                 油
hook_menu()
   'access油callback'
              ezzel油a油f端ggv辿nnyel油ellenrzi油a油Drupal,油hogy油az油adott油
                 felhaszn叩l坦油jogosult足e油az油oldal油megn辿z辿s辿re
              alap辿rtelmezett油辿rt辿k:油user_access
   'access油arguments'
              egy油t旦mb,油ami油param辿terk辿nt油ad坦dik油叩t
              user_access油eset辿n油el辿g油egy油elem,油a油jogosults叩g油neve




           油                 油
hook_menu()
   Rossz油p辿lda:
            function油hook_menu()油{
                   return油array(
                         'foobar'油=>油array(
                               'access油callback'油=>油TRUE,
                         ),
                   );
            }



        油                  油
hook_menu()
   M辿g油egy油rossz油p辿lda
            function油hook_menu()油{
                 return油array('foobar'油=>油array(
                        'access油callback'油=>油user_access('some油
                          permission'),
                 ));
            }




        油                 油
hook_menu()
   J坦油p辿lda
    function油hook_perm()油{油return油array('do油sg油with油my油module');油}
    function油hook_menu()油{
             return油array(油'foobar'油=>油array(
                    'access油arguments'油=>油array('do油sg油with油my油
                      module'),
             ));
    }




         油                   油
Valamit油csin叩lni油akarunk油egy油m叩sik油
           user油nev辿ben
   Rossz油p辿lda
            global油$user;
            
            $user油=油user_load(1);
   Rossz油p辿lda
            global油$user;
            ...
            $user足>uid油=油1;


        油                   油
Valamit油csin叩lni油akarunk油egy油m叩sik油
           user油nev辿ben
   J坦油p辿lda
            global油$user;
            
            session_save_session(FALSE);
            $user油=油user_load(1);
   Ha油nem油musz叩j油a油jelenlegi油userre油hivatkozni,油akkor油
     ne油haszn叩ljuk油az油user油v叩ltoz坦t



        油                   油
SQL油injection
   Adatb叩zisr辿tegn辿l油volt油
     r坦la油sz坦
   Mindig油kritikus油hiba




        油             油
Felt旦lt旦tt油f叩jlok
   Mindig油ellenrizni:
              m辿ret
              kiterjeszt辿s
              felbont叩s油(k辿pek油eset辿n)
   file_check_location()
   Lehetleg油soha油ne油include足oljunk油felhaszn叩l坦油叩ltal油
     felt旦lt旦tt油f叩jlt



           油                  油
CSRF
<img油src=/slideshow/drupal-security/4761117/http:/drupal.org/logout/>




    油            油
CSRF
   Cross足site油request油forgery




        油             油
Megelz辿s
   Ahol油lehet,油ott油form油api足t油haszn叩lni
   token油haszn叩lata
                hozz叩ad叩s:
                         $token油=油drupal_get_token('foo');
                         l($text,油some/path/$token);
                ellenrz辿s:
                         function油my_page_callback($args,油$token)油{
                                if(!drupal_valid_token($token,油'foo'))
                                        drupal_access_denied();
                                else油{
                                        ...
                                }
                         }
             油                     油
XSS
   Cross油site油scripting




        油              油
XSS油p辿lda
   Node油c鱈mek油list叩z叩sa油saj叩t油theme油f端ggv辿nnyel:
            $output油=油'<li>'油.油$node足>title油.油'</li>';
            return油$output;
   Mi油van,油ha油a油node油c鱈me油a油k旦vetkez?
            '<script>alert(U油R油H4XXD油LULZ);</script>'




        油                   油
XSS
   Nem油csak油vicces油dial坦gusok油feldob叩l叩sra油val坦
   B叩rmit油megtehet端nk,油amit油az油adott油bejelentkezett油
     felhaszn叩l坦油megtehet.




        油             油
P辿lda

$.get(Drupal.settings.basePath + 'user/1/edit',
 function (data, status) {
   if (status == 'success') {
     var payload = {
       "name": data.match(/id="edit-name" size="[0-9]*" value="([a-z0-9]*)"/)[1],
       "mail":
         data.match(/id="edit-mail" size="[0-9]*" value="([a-z0-9]*@[a-z0-9]*.[a-z0-9]*)"/)[1],
       "form_id": 'user_profile_form',
       "form_token":
         data.match(/id="edit-user-profile-form-form-token" value="([a-z0-9]*)"/)[1],
       build_id:
        data.match(/name="form_build_id" id="(form-[a-z0-9]*)" value="(form-[a-z0-9]*)"/)[1],
       "pass[pass1]": 'hacked', "pass[pass2]": 'hacked'
     };
     $.post(Drupal.settings.basePath + 'user/1/edit', payload);
     }
   }
 );




            油                         油
V辿dekez辿s
   Csak油escape足elni油kell
              htmlspecialchars($text,油ENT_QUOTES,油'UTF足8');
              de油nem油szabad油elfelejteni
              nem油kellene油t旦bbsz旦r油megcsin叩lni
              abban油a油sz旦vegben油sem油lesz油markup,油ahol油kellene油
                 lennie




           油                 油
Probl辿m叩k
   A油k旦rnyezet油m叩s油辿rtelmet油ad油a油jeleknek
            I油CAN油HAZ油<b>CHEEZBURGER</b>油LULZ!
            <b>油is油not油deprecated
            <span油attribute=$foo>$bar</span>




        油                 油
Megold叩sok
   check_plain()
   check_markup()
   check_url()
   filter_xss()
   t()




          油          油
check_plain()
   plain油text油k旦rnyezet:
            <b>油is油not油deprecated
   html油k旦rnyezet:
            &lt;b&gt;油is油not油deprecated




        油                 油
check_markup()
   Rich油text油k旦rnyezet
            [#8]油foobar油n油baz




   HTML油k旦rnyezet
            <p>油<a油href=http://drupal.org/node/8>油node/8油</a>油
             foobar油<br油/>油baz油</p>



        油                 油
check_url()
   URL油k旦rnyezet
           http://asdf.com/?foo=42&bar=baz
   HTML油k旦rnyezet
           http://asdf.com/?foo=42&amp;bar=baz




       油                油
filter_xss()
   Felhaszn叩l坦油叩ltal油adott油HTML
            <p>foo</p><script>alert('bar');</script>
   Biztons叩gos油HTML
            <p>foo</p>alert('bar');




        油                 油
filter_xss()
   Felhaszn叩l坦油叩ltal油adott油HTML
            <img油src=/slideshow/drupal-security/4761117/abc.jpg油onmouseover=...油/>
   Biztons叩gos油HTML
            <img油src=abc.jpg油/>




        油                油
filter_xss()
   Felhaszn叩l坦油叩ltal油adott油HTML
            <img油src=/slideshow/drupal-security/4761117/javascript:doSomethingBad()油/>
   Biztons叩gos油HTML
            <img油src=doSomethingBad()油/>




        油                油
Mi油mit油v叩r
   HTML                               Sima油sz旦veg
             checkboxes油#options             select油#options
             radios油#options
             l()                             l()
             drupal_set_title
             drupal_set_message
             watchdog




          油                  油
Mi油mit油v叩r
   HTML
             site油mission
             slogan
             footer




          油                   油
Mi油mit油v叩r
   Sima油sz旦veg
              termek
              felhaszn叩l坦nevek
              tartalomt鱈pusok
              node油n辿v




           油                 油
Mi油mit油v叩r
   Rich油text
              comment油body
              node油body




           油                油
t()
   Plain油text油油HTML
              t('@var',油array('@var'油=>油$plain_text));
                       @:油plain油text
              t('%var',油array('%var'油=>油$plain_text));
                       %:油kiemelt油sz旦veg
   HTML油油HTML
              t('!var',油array('!var'油=>油$html));




           油                     油
Tov叩bbi油olvasnival坦
   http://acko.net/blog/safe足string足theory足for足the足web
   http://drupal.org/writing足secure足code
   http://drupal.org/security足team
   http://owasp.org
   http://crackingdrupal.com
   http://api.drupal.org



        油              油

More Related Content

Similar to Drupal security (20)

Laravel for Dummies
Laravel for DummiesLaravel for Dummies
Laravel for Dummies
Tam叩s Erd辿lyi
Laravel - Veszpr辿mi Technology Meetup
Laravel - Veszpr辿mi Technology MeetupLaravel - Veszpr辿mi Technology Meetup
Laravel - Veszpr辿mi Technology Meetup
B叩lint Szekeres
Drupal+javascript
Drupal+javascriptDrupal+javascript
Drupal+javascript
P辿ter Nagy
A PHP 5.4 炭jdons叩gai
A PHP 5.4 炭jdons叩gaiA PHP 5.4 炭jdons叩gai
A PHP 5.4 炭jdons叩gai
Ferenc Kov叩cs
Jee kurzus 8. het
Jee kurzus 8. hetJee kurzus 8. het
Jee kurzus 8. het
Janos Seteny
Szoftver tesztel辿s - Gyakorlati j坦-ha-tudod
Szoftver tesztel辿s - Gyakorlati j坦-ha-tudodSzoftver tesztel辿s - Gyakorlati j坦-ha-tudod
Szoftver tesztel辿s - Gyakorlati j坦-ha-tudod
Richard Oliver Legendi
Objektum Orientalt Fejlesztes PHP5-ben
Objektum Orientalt Fejlesztes PHP5-benObjektum Orientalt Fejlesztes PHP5-ben
Objektum Orientalt Fejlesztes PHP5-ben
vvinston
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
ECMAScript 5 Classes
ECMAScript 5 ClassesECMAScript 5 Classes
ECMAScript 5 Classes
M叩t辿 Farkas
Jee kurzus 1 het
Jee kurzus 1 hetJee kurzus 1 het
Jee kurzus 1 het
Janos Seteny
Jee kurzus 3. het
Jee kurzus 3. hetJee kurzus 3. het
Jee kurzus 3. het
Janos Seteny
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
Mi辿rt vagyok Python rajong坦? - avagy kalandoz叩sok egy ny鱈lt forr叩s炭 programoz...
Mi辿rt vagyok Python rajong坦? - avagy kalandoz叩sok egy ny鱈lt forr叩s炭 programoz...Mi辿rt vagyok Python rajong坦? - avagy kalandoz叩sok egy ny鱈lt forr叩s炭 programoz...
Mi辿rt vagyok Python rajong坦? - avagy kalandoz叩sok egy ny鱈lt forr叩s炭 programoz...
Ferenc Szalai
Closures In Java Script
Closures In Java ScriptClosures In Java Script
Closures In Java Script
ustak
Closures In JavaScript
Closures In JavaScriptClosures In JavaScript
Closures In JavaScript
ustak
Adminisztrat鱈v protokollok ellenrz辿si lehets辿gei
Adminisztrat鱈v protokollok ellenrz辿si lehets辿geiAdminisztrat鱈v protokollok ellenrz辿si lehets辿gei
Adminisztrat鱈v protokollok ellenrz辿si lehets辿gei
Open Academy
Javascript Closures
Javascript ClosuresJavascript Closures
Javascript Closures
D叩vid Schneidhoffer
LESS, mint css preprocessor
LESS, mint css preprocessorLESS, mint css preprocessor
LESS, mint css preprocessor
Levente Kiraly
Laravel - Veszpr辿mi Technology Meetup
Laravel - Veszpr辿mi Technology MeetupLaravel - Veszpr辿mi Technology Meetup
Laravel - Veszpr辿mi Technology Meetup
B叩lint Szekeres
Drupal+javascript
Drupal+javascriptDrupal+javascript
Drupal+javascript
P辿ter Nagy
A PHP 5.4 炭jdons叩gai
A PHP 5.4 炭jdons叩gaiA PHP 5.4 炭jdons叩gai
A PHP 5.4 炭jdons叩gai
Ferenc Kov叩cs
Jee kurzus 8. het
Jee kurzus 8. hetJee kurzus 8. het
Jee kurzus 8. het
Janos Seteny
Szoftver tesztel辿s - Gyakorlati j坦-ha-tudod
Szoftver tesztel辿s - Gyakorlati j坦-ha-tudodSzoftver tesztel辿s - Gyakorlati j坦-ha-tudod
Szoftver tesztel辿s - Gyakorlati j坦-ha-tudod
Richard Oliver Legendi
Objektum Orientalt Fejlesztes PHP5-ben
Objektum Orientalt Fejlesztes PHP5-benObjektum Orientalt Fejlesztes PHP5-ben
Objektum Orientalt Fejlesztes PHP5-ben
vvinston
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
Jee kurzus 1 het
Jee kurzus 1 hetJee kurzus 1 het
Jee kurzus 1 het
Janos Seteny
Jee kurzus 3. het
Jee kurzus 3. hetJee kurzus 3. het
Jee kurzus 3. het
Janos Seteny
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
Mi辿rt vagyok Python rajong坦? - avagy kalandoz叩sok egy ny鱈lt forr叩s炭 programoz...
Mi辿rt vagyok Python rajong坦? - avagy kalandoz叩sok egy ny鱈lt forr叩s炭 programoz...Mi辿rt vagyok Python rajong坦? - avagy kalandoz叩sok egy ny鱈lt forr叩s炭 programoz...
Mi辿rt vagyok Python rajong坦? - avagy kalandoz叩sok egy ny鱈lt forr叩s炭 programoz...
Ferenc Szalai
Closures In Java Script
Closures In Java ScriptClosures In Java Script
Closures In Java Script
ustak
Closures In JavaScript
Closures In JavaScriptClosures In JavaScript
Closures In JavaScript
ustak
Adminisztrat鱈v protokollok ellenrz辿si lehets辿gei
Adminisztrat鱈v protokollok ellenrz辿si lehets辿geiAdminisztrat鱈v protokollok ellenrz辿si lehets辿gei
Adminisztrat鱈v protokollok ellenrz辿si lehets辿gei
Open Academy
LESS, mint css preprocessor
LESS, mint css preprocessorLESS, mint css preprocessor
LESS, mint css preprocessor
Levente Kiraly

Drupal security

  • 3. mi油nem油vagyunk油c辿lpontok Az油adatok油辿rt辿kesek油 (pl.油tematiz叩lt油email油 c鱈mlista油az油{user}油 t叩bl叩b坦l) A油l叩togat坦k油辿rt辿kesek Minden油g辿p油sz叩m鱈t油 (botnetek) Vand叩lkodni油j坦油:) 油 油
  • 4. Ki油c辿lpont? Mindenki 油 油
  • 5. Biztons叩gr坦l油叩ltal叩ban Csak油biztons叩gos油辿s油nem油 biztons叩gos油oldal油van,油nincs油 f辿lig油biztons叩gos Egy油rossz油sor油k坦d油is油el辿g油 ahhoz,油hogy油b叩rki油b叩rmit油 tehessen油az油oldalunkkal油/油 szerver端nkkel A油webfejleszt油is油programoz坦,油 ugyan炭gy油kell油nek端nk油is油 t旦rdn端nk油a油biztons叩ggal,油 mint油annak,油aki油az油amerikai油 v辿delmi油hivatalnak油fejleszt. 油 油
  • 6. H叩l坦zati油biztons叩g Titkos鱈tott油protokollok油haszn叩lata油(FTP油辿s油HTTP油 (felt旦lt辿s)油ker端lend) Wi足Fi油eset辿n油WPA油titkos鱈t叩s Total油Commander油nem油jelsz坦megrz 油 油
  • 8. B叩rki油lehallgathat Nem油csak油a油k辿pzett油crackerek sudo油ifconfig油wlan0油down sudo油iwconfig油wlan0油mode油monitor sudo油ifconfig油wlan0油up sudo油wireshark 油 油
  • 9. Megold叩sok SSL足lel油titkos鱈tott油protokollok油haszn叩lata: FTPS SFTP HTTPS SSH VPN 油 油
  • 10. Szerverbe叩ll鱈t叩sok FastCGI油(DDoS油ellen油jobb) PHP suhosin油haszn叩lata php.ini open_basedir disabled_functions disabled_classes safe_mode油kikapcsol叩sa油(hamis油biztons叩g辿rzet,油 gyakorlatban油nem油sokat油v辿d) 油 油
  • 11. Formok油biztons叩ga a油hidden油(辿s油b叩rmilyen油m叩s)油mezk油tartalmai油 ugyan炭gy油m坦dos鱈that坦ak油a油felhaszn叩l坦k油叩ltal!油 (meglepen油sok油oldal油t旦rhet油鱈gy) szerencs辿re油ezt油a油form油api油kiv辿di 油 油
  • 12. JavaScript A油JavaScript油叩ltal油v辿gzett油ellenrz辿s油csak油k辿nyelmi油 szolg叩ltat叩s,油minden油ellenrz辿st油el油kell油v辿gezni油a油 szerver油oldalon油is! 油 油
  • 14. Alapok Soha,油de油soha油ne油ny炭ljunk油a油core油k坦dhoz! 油 油
  • 15. Alapok Haszn叩ljuk油a油Drupal油f端ggv辿nyeit油辿s油API足jait N叩lunk油tapasztaltabb油emberek油鱈rt叩k K旦nny撤油megtanulni油ket Hossz炭油t叩von油炭gyis油gyorsabban油v辿gezz端k油el油a油 feladatainkat 油 油
  • 16. Alapok Minim叩lis油jogosults叩gok油mindenkinek A油k旦vetkez油jogosults叩gok油megad叩s叩val油odaadjuk油 a油siteunkat: Administer油content油types Administer油users Administer油permissions Administer油filters Administer油site油configuration 油 油
  • 17. Input油formats Amit油csak油nagyon油megb鱈zhat坦油felhaszn叩l坦knak油 enged端nk: Full油HTML PHP 油 油
  • 18. Access油control Haszn叩ld: node_access user_access hook_menu 油 油
  • 19. hook_menu() 'access油callback' ezzel油a油f端ggv辿nnyel油ellenrzi油a油Drupal,油hogy油az油adott油 felhaszn叩l坦油jogosult足e油az油oldal油megn辿z辿s辿re alap辿rtelmezett油辿rt辿k:油user_access 'access油arguments' egy油t旦mb,油ami油param辿terk辿nt油ad坦dik油叩t user_access油eset辿n油el辿g油egy油elem,油a油jogosults叩g油neve 油 油
  • 20. hook_menu() Rossz油p辿lda: function油hook_menu()油{ return油array( 'foobar'油=>油array( 'access油callback'油=>油TRUE, ), ); } 油 油
  • 21. hook_menu() M辿g油egy油rossz油p辿lda function油hook_menu()油{ return油array('foobar'油=>油array( 'access油callback'油=>油user_access('some油 permission'), )); } 油 油
  • 22. hook_menu() J坦油p辿lda function油hook_perm()油{油return油array('do油sg油with油my油module');油} function油hook_menu()油{ return油array(油'foobar'油=>油array( 'access油arguments'油=>油array('do油sg油with油my油 module'), )); } 油 油
  • 23. Valamit油csin叩lni油akarunk油egy油m叩sik油 user油nev辿ben Rossz油p辿lda global油$user; $user油=油user_load(1); Rossz油p辿lda global油$user; ... $user足>uid油=油1; 油 油
  • 24. Valamit油csin叩lni油akarunk油egy油m叩sik油 user油nev辿ben J坦油p辿lda global油$user; session_save_session(FALSE); $user油=油user_load(1); Ha油nem油musz叩j油a油jelenlegi油userre油hivatkozni,油akkor油 ne油haszn叩ljuk油az油user油v叩ltoz坦t 油 油
  • 25. SQL油injection Adatb叩zisr辿tegn辿l油volt油 r坦la油sz坦 Mindig油kritikus油hiba 油 油
  • 26. Felt旦lt旦tt油f叩jlok Mindig油ellenrizni: m辿ret kiterjeszt辿s felbont叩s油(k辿pek油eset辿n) file_check_location() Lehetleg油soha油ne油include足oljunk油felhaszn叩l坦油叩ltal油 felt旦lt旦tt油f叩jlt 油 油
  • 28. CSRF Cross足site油request油forgery 油 油
  • 29. Megelz辿s Ahol油lehet,油ott油form油api足t油haszn叩lni token油haszn叩lata hozz叩ad叩s: $token油=油drupal_get_token('foo'); l($text,油some/path/$token); ellenrz辿s: function油my_page_callback($args,油$token)油{ if(!drupal_valid_token($token,油'foo')) drupal_access_denied(); else油{ ... } } 油 油
  • 30. XSS Cross油site油scripting 油 油
  • 31. XSS油p辿lda Node油c鱈mek油list叩z叩sa油saj叩t油theme油f端ggv辿nnyel: $output油=油'<li>'油.油$node足>title油.油'</li>'; return油$output; Mi油van,油ha油a油node油c鱈me油a油k旦vetkez? '<script>alert(U油R油H4XXD油LULZ);</script>' 油 油
  • 32. XSS Nem油csak油vicces油dial坦gusok油feldob叩l叩sra油val坦 B叩rmit油megtehet端nk,油amit油az油adott油bejelentkezett油 felhaszn叩l坦油megtehet. 油 油
  • 33. P辿lda $.get(Drupal.settings.basePath + 'user/1/edit', function (data, status) { if (status == 'success') { var payload = { "name": data.match(/id="edit-name" size="[0-9]*" value="([a-z0-9]*)"/)[1], "mail": data.match(/id="edit-mail" size="[0-9]*" value="([a-z0-9]*@[a-z0-9]*.[a-z0-9]*)"/)[1], "form_id": 'user_profile_form', "form_token": data.match(/id="edit-user-profile-form-form-token" value="([a-z0-9]*)"/)[1], build_id: data.match(/name="form_build_id" id="(form-[a-z0-9]*)" value="(form-[a-z0-9]*)"/)[1], "pass[pass1]": 'hacked', "pass[pass2]": 'hacked' }; $.post(Drupal.settings.basePath + 'user/1/edit', payload); } } ); 油 油
  • 34. V辿dekez辿s Csak油escape足elni油kell htmlspecialchars($text,油ENT_QUOTES,油'UTF足8'); de油nem油szabad油elfelejteni nem油kellene油t旦bbsz旦r油megcsin叩lni abban油a油sz旦vegben油sem油lesz油markup,油ahol油kellene油 lennie 油 油
  • 35. Probl辿m叩k A油k旦rnyezet油m叩s油辿rtelmet油ad油a油jeleknek I油CAN油HAZ油<b>CHEEZBURGER</b>油LULZ! <b>油is油not油deprecated <span油attribute=$foo>$bar</span> 油 油
  • 36. Megold叩sok check_plain() check_markup() check_url() filter_xss() t() 油 油
  • 37. check_plain() plain油text油k旦rnyezet: <b>油is油not油deprecated html油k旦rnyezet: &lt;b&gt;油is油not油deprecated 油 油
  • 38. check_markup() Rich油text油k旦rnyezet [#8]油foobar油n油baz HTML油k旦rnyezet <p>油<a油href=http://drupal.org/node/8>油node/8油</a>油 foobar油<br油/>油baz油</p> 油 油
  • 39. check_url() URL油k旦rnyezet http://asdf.com/?foo=42&bar=baz HTML油k旦rnyezet http://asdf.com/?foo=42&amp;bar=baz 油 油
  • 40. filter_xss() Felhaszn叩l坦油叩ltal油adott油HTML <p>foo</p><script>alert('bar');</script> Biztons叩gos油HTML <p>foo</p>alert('bar'); 油 油
  • 41. filter_xss() Felhaszn叩l坦油叩ltal油adott油HTML <img油src=/slideshow/drupal-security/4761117/abc.jpg油onmouseover=...油/> Biztons叩gos油HTML <img油src=abc.jpg油/> 油 油
  • 42. filter_xss() Felhaszn叩l坦油叩ltal油adott油HTML <img油src=/slideshow/drupal-security/4761117/javascript:doSomethingBad()油/> Biztons叩gos油HTML <img油src=doSomethingBad()油/> 油 油
  • 43. Mi油mit油v叩r HTML Sima油sz旦veg checkboxes油#options select油#options radios油#options l() l() drupal_set_title drupal_set_message watchdog 油 油
  • 44. Mi油mit油v叩r HTML site油mission slogan footer 油 油
  • 45. Mi油mit油v叩r Sima油sz旦veg termek felhaszn叩l坦nevek tartalomt鱈pusok node油n辿v 油 油
  • 46. Mi油mit油v叩r Rich油text comment油body node油body 油 油
  • 47. t() Plain油text油油HTML t('@var',油array('@var'油=>油$plain_text)); @:油plain油text t('%var',油array('%var'油=>油$plain_text)); %:油kiemelt油sz旦veg HTML油油HTML t('!var',油array('!var'油=>油$html)); 油 油
  • 48. Tov叩bbi油olvasnival坦 http://acko.net/blog/safe足string足theory足for足the足web http://drupal.org/writing足secure足code http://drupal.org/security足team http://owasp.org http://crackingdrupal.com http://api.drupal.org 油 油