Upgrade to Pro — share decks privately, control downloads, hide ads and more …

フレームワークの機能を使わずに標準関数使ったら障害起こした話/phpcon-2022

asumikam
September 25, 2022

 フレームワークの機能を使わずに標準関数使ったら障害起こした話/phpcon-2022

asumikam

September 25, 2022
Tweet

More Decks by asumikam

Other Decks in Programming

Transcript

  1. -BNJOBTࣄલ஌ࣝ&WFOU CPPUTUSBQ SPVUF EJTQBUDI SFOEFS fi OJTI &WFOU લॲཧ ϧʔςΟϯάॲཧ

    ࣮ࡍͷ$POUSPMMFSॲཧ ϏϡʔͷϨϯμϦϯά ޙॲཧ ʮ-BNJOBTʯͷίʔυΛಡΉࣄલ஌ࣝ
  2. CPPUTUSBQ SPVUF EJTQBUDI SFOEFS fi OJTI &WFOU લॲཧ ϧʔςΟϯάॲཧ ࣮ࡍͷ$POUSPMMFSॲཧ

    ϏϡʔͷϨϯμϦϯά ޙॲཧ ࠓճ͸ ʮEJTQBUDIʯ ʮ fi OJTIʯ Λৄ͘͠ݟΔ👀 ʮ-BNJOBTʯͷίʔυΛಡΉࣄલ஌ࣝ &WFOUEJTQBUDI
  3. &WFOU fi OJTI CPPUTUSBQ SPVUF EJTQBUDI SFOEFS fi OJTI &WFOU

    લॲཧ ϧʔςΟϯάॲཧ ࣮ࡍͷ$POUSPMMFSॲཧ ϏϡʔͷϨϯμϦϯά ޙॲཧ ࠓճ͸ ʮEJTQBUDIʯ ʮ fi OJTIʯ Λৄ͘͠ݟΔ👀 ʮ-BNJOBTʯͷίʔυΛಡΉਖ਼͘͠ϦμΠϨΫτ
  4. w &WFOUEJTQBUDI 
 ϑϨʔϜϫʔΫͷϦμΠϨΫτΛهड़ͨ͠ஈ֊Ͱ͸ 
 ϓϩύςΟʹ஋Λ֨ೲ͢Δ͚ͩ w &WFOU fi OJTI

    
 IFBEFSؔ਺Ͱ࣮ࡍʹॲཧ͢Δ෦෼ 
 ϦμΠϨΫτɾεςʔλείʔυॲཧͯ͠Ϩεϙϯεฦ٫ ͭ·Γɺਖ਼͍͠ϦμΠϨΫτ͸͜͏ಈ͘ ʮ-BNJOBTʯͷίʔυΛಡΉਖ਼͘͠ϦμΠϨΫτ
  5. w EJTQBUDI 
 ͜͜ͰϦμΠϨΫτΛIFBEFSؔ਺Ͱهड़͍ͯ͠ΔͷͰ 
 ϔομʔͷϦετͱͯ͠஋͕͸͍Δ 
 w fi OJTI

    
 ϑϨʔϜϫʔΫͷσϑΥϧτͷεςʔλείʔυ͕ 
 ͱ͍͏εςʔλείʔυ্͕ॻ͖͞Εͯ͠·͏ 
 ˠਖ਼͘͠ϦμΠϨΫτ͞Εͳ͍ ͭ·Γɺ௚઀ϦμΠϨΫτΛهड़ͨ͠৔߹͸͜͏ಈ͘ ʮ-BNJOBTʯͷίʔυΛಡΉ௚઀ϦμΠϨΫτ
  6. ͳͥࢲͷϦϦʔε͕ো֐ʹͳ͔ͬͨ👼 IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY ϑϨʔϜϫʔΫͰ IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY

    ഑ྻʹηοτ͞ΕΔ͚ͩ IFBEFSؔ਺ͷॲཧ͸͠ͳ͍ #FGPSF "GUFS &WFOUEJTQBUDIલ &WFOUEJTQBUDIલ &WFOUEJTQBUDI &WFOUEJTQBUDI &WFOU fi OJTI ͳͥো֐͕ى͖͔ͨ
  7. ͳͥࢲͷϦϦʔε͕ো֐ʹͳ͔ͬͨ👼 IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY ϑϨʔϜϫʔΫͰ IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY

    ഑ྻʹηοτ͞ΕΔ͚ͩ IFBEFSؔ਺ͷॲཧ͸͠ͳ͍ #FGPSF "GUFS &WFOUEJTQBUDIલ &WFOUEJTQBUDIલ &WFOUEJTQBUDI &WFOUEJTQBUDI &WFOU fi OJTI   ͳͥো֐͕ى͖͔ͨ
  8. ͳͥࢲͷϦϦʔε͕ো֐ʹͳ͔ͬͨ👼 IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY ϑϨʔϜϫʔΫͰ IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY

    ഑ྻʹηοτ͞ΕΔ͚ͩ IFBEFSؔ਺ͷॲཧ͸͠ͳ͍ #FGPSF "GUFS &WFOUEJTQBUDIલ &WFOUEJTQBUDIલ &WFOUEJTQBUDI &WFOUEJTQBUDI &WFOU fi OJTI   ͳͥো֐͕ى͖͔ͨ
  9. ͳͥࢲͷϦϦʔε͕ো֐ʹͳ͔ͬͨ👼 IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY ϑϨʔϜϫʔΫͰ IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY

    ഑ྻʹηοτ͞ΕΔ͚ͩ IFBEFSؔ਺ͷॲཧ͸͠ͳ͍ #FGPSF "GUFS &WFOUEJTQBUDIલ &WFOUEJTQBUDIલ &WFOUEJTQBUDI &WFOUEJTQBUDI &WFOU fi OJTI     ͳͥো֐͕ى͖͔ͨ
  10. ͳͥࢲͷϦϦʔε͕ো֐ʹͳ͔ͬͨ👼 IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY ϑϨʔϜϫʔΫͰ IFBEFS 4FU$PPLJFIPHFQJZP IFBEFS -PDBUJPOYYY

    ഑ྻʹηοτ͞ΕΔ͚ͩ IFBEFSؔ਺ͷॲཧ͸͠ͳ͍ #FGPSF "GUFS &WFOUEJTQBUDIલ &WFOUEJTQBUDIલ &WFOUEJTQBUDI &WFOUEJTQBUDI &WFOU fi OJTI 👼     ͳͥো֐͕ى͖͔ͨ
  11. 🤕 OZBOLPTBO 🤕 🤕 🤓 OZBOLPTBO XBOLPTBO IPHFIPFHIPHF ʮো֐͔ͳʁʯΛݴ͍΍͘͢͢Δ w

    ಛఆͷਓʹϝϯγϣϯɺ૬ஊͰ͖Δ w AUSPVCMFYYYAͰνϟϯωϧࣗಈ࡞੒ w !IFSFͰνϟϯωϧͷ͓஌Βͤ w HFOFSBMʹ΋ྲྀΕΔ w ؔ܎ऀ͕ू·Γ΍͍͢🙆 ো֐ରԠϑϩʔத਎ʹ͍ͭͯޠΔ
  12. 🤕 OZBOLPTBO 🤕 🤕 🤓 OZBOLPTBO XBOLPTBO IPHFIPFHIPHF ࣗಈͰνϟϯωϧ࡞੒ɾݟ͑Δͱ͜Ζʹ௨஌ w

    ಛఆͷਓʹϝϯγϣϯɺ૬ஊͰ͖Δ w AUSPVCMFYYYAͰνϟϯωϧࣗಈ࡞੒ w !IFSFͰνϟϯωϧͷ͓஌Βͤ w HFOFSBMʹ΋ྲྀΕΔ w ؔ܎ऀ͕ू·Γ΍͍͢🙆 ো֐ରԠϑϩʔத਎ʹ͍ͭͯޠΔ
  13. 🤕 OZBOLPTBO 🤕 🤕 🤓 OZBOLPTBO XBOLPTBO IPHFIPFHIPHF ࣗಈͰνϟϯωϧ࡞੒ɾݟ͑Δͱ͜Ζʹ௨஌ w

    ಛఆͷਓʹϝϯγϣϯɺ૬ஊͰ͖Δ w AUSPVCMFYYYAͰνϟϯωϧࣗಈ࡞੒ w !IFSFͰνϟϯωϧͷ͓஌Βͤ w HFOFSBMʹ΋ྲྀΕΔ w ؔ܎ऀ͕ू·Γ΍͍͢🙆 ৘ใ͕ू໿ ଍ฒΈ͕ଗ͏ ৘ใ͕ࢄཚ ଍ฒΈ͕ଗΘͳ͍ ো֐ରԠϑϩʔத਎ʹ͍ͭͯޠΔ
  14. ʮো֐ରԠΨΠυϒοΫʯʹԊͬͯରԠ w ໾ׂͷܾఆ w ࢦشऀ w ίϛϡχέʔγϣϯ w ॻه w

    ϓϨΠϠʔ w ۓٸ౓ɾॏཁ౓͸ߟྀʹ͍Εͭͭ w جຊతʹ͸ੵۃతʹएऀΛ࠾༻ w ͜Εຊ౰ʹϚδͰҭͭ ো֐ରԠϑϩʔத਎ʹ͍ͭͯޠΔ
  15. ʮো֐ରԠΨΠυϒοΫʯʹԊͬͯରԠ w ໾ׂͷܾఆ w ࢦشऀ w ίϛϡχέʔγϣϯ w ॻه w

    ϓϨΠϠʔ w ۓٸ౓ɾॏཁ౓͸ߟྀʹ͍Εͭͭ w جຊతʹ͸ੵۃతʹ׳Εͯͳ͍ਓΛ࠾༻ w ͜Εຊ౰ʹϚδͰҭͭ ো֐ରԠϑϩʔத਎ʹ͍ͭͯޠΔ
  16. ʮো֐ରԠΨΠυϒοΫʯʹԊͬͯରԠ w ໾ׂͷܾఆ w ࢦشऀ w ίϛϡχέʔγϣϯ w ॻه w

    ϓϨΠϠʔ w ۓٸ౓ɾॏཁ౓͸ߟྀʹ͍Εͭͭ w جຊతʹ͸ੵۃతʹएऀΛ࠾༻ w ͜Εຊ౰ʹϚδͰҭͭ ϧʔϧͰ໌ݴ ࢀՃ͠΍͘͢ ࢀՃ͠ʹ͍͘ ো֐ରԠϑϩʔத਎ʹ͍ͭͯޠΔ
  17. ऴΘͬͨ͋ͱ͸ʮো֐;Γ͔͑Γձʯ w ʮλΠϜϥΠϯʯ w ࢀՃ͍ͯ͠ͳ͍ਓ΋ 
 ྲྀΕɾղܾํ๏ɾରԠํ๏Λ೺ѲͰ͖Δ w ࣅͨΑ͏ͳࣄ৅͕ى͖ͨ࣌ w

    ن໛ײʹΑΔରԠ࣌ؒͷ༧ଌ͕Ͱ͖Δ w ໛ൣରԠ΍൓໘ڭࢣରԠΛֶ΂Δ ྫɿ"84ͷϦʔδϣϯো֐ 🐰 🐴🐴🐴 🐹🐹🐹 αϙʔτνʔϜʹ࿈བྷ Aػೳ͕όάͬͯΔؾ഑Λײ஌ ো֐ରԠϑϩʔத਎ʹ͍ͭͯޠΔ
  18. ऴΘͬͨ͋ͱ͸ʮো֐;Γ͔͑Γձʯ w ʮো֐ͷݪҼɾղܾࡦʯ w ֎෦ཁҼͰආ͚ΒΕͳ͍ʁ w ϑϩʔ͕దͯ͠ͳ͍ʁ w ιʔεͷόάʁ w

    ʮ௥ՃͰ΍Δ΂͖͜ͱʯ w ΍ΕΔ΋ͷ͚ͩ΍Δ w গͣͭ͠ΧΠθϯ ྫɿ$16ෛՙߟྀෆ଍ʹҼΔো֐ 🐟 ো֐ରԠϑϩʔத਎ʹ͍ͭͯޠΔ
  19. ྫɿ$16ෛՙߟྀෆ଍ʹҼΔো֐ 🐟 ऴΘͬͨ͋ͱ͸ʮো֐;Γ͔͑Γձʯ w ʮݪҼʯͷ௥ٻ w ֎෦ཁҼͰආ͚ΒΕͳ͍ʁ 
 ϑϩʔ͕దͯ͠ͳ͍ʁ 


    ιʔεͷόάʁ w ϙΠϯτ 
 Ͱ͖Δͱ͜Ζ͔Β 
 গͣͭ͠ΧΠθϯ ஌ݟڞ༗͕ ·͹Β ϧʔϧͰ ஌ݟڞ༗͸ඞͣ ͞ΕΔΑ͏ʹ ো֐ରԠϑϩʔத਎ʹ͍ͭͯޠΔ