Slide 1

Slide 1 text

ॻ੶঺հɿ PHPαΠόʔςϩͷٕ๏ ʙ߈ܸͱ๷ޚͷ࣮ࡍʙ 2015/06/03(Fri) Ι͘Λʢikuwowʣ

Slide 2

Slide 2 text

ࣗݾ঺հ • Ι͘Λʢikuwowʣ • झຯ αʔόʔߏஙɾ؅ ཧࣗಈԽ • ϚΠϒʔϜ ࿥ըαʔόʔ • ޷͖ͳ৭ ࢵ @ikuwow

Slide 3

Slide 3 text

֓ཁ • ஶऀ GIJOE • AmazonϨϏϡʔ਺18ɺ
 ධՁ4.6 • 2005೥ॳ൛ୈ1࡮ൃߦ
 2011೥ॳ൛ୈ10࡮ൃߦ ʁʂ

Slide 4

Slide 4 text

ຊͷ໨࣍ 1.WebΞϓϦέʔγϣϯͷηΩϡϦςΟͱ͸ 2.WebΞϓϦέʔγϣϯΛ࣮ࡍʹ߈ܸͯ͠ΈΑ͏ 3.߈ܸํ๏14छྨ૯͟Β͑ 4.WebΞϓϦέʔγϣϯηΩϡϦςΟͷཧ࿦ 5.HTTPηογϣϯ͔Β߈ܸͷຊ࣭Λ஌Δ 6.੬ऑੑεΩϟφʔΛར༻͢Δ 7.νϟʔτࣜ:੬ऑੑͷݟ͚ͭํ ͍ΘΏΔʮWebηΩϡϦςΟͷຊʯ ex. XSSɺCSRFɺSQLΠϯδΣΫγϣϯɺ…

Slide 5

Slide 5 text

͜ͷຊͷಛ௃ΛҰݴͰݴ͏ͱ

Slide 6

Slide 6 text

߈ܸํ๏ʹ஫໨ͨ͠ WebηΩϡϦςΟͷ ϨϑΝϨϯε

Slide 7

Slide 7 text

ʮຊॻͰ͸ɺ߈ܸํ๏Λղઆ͠ɺ ͦΕʹର͢Δద੾ͳ๷ޚํ๏Λ ໌͍ࣔͯ͠·͢ɻ ։ൃऀ͕҆શͰ߈ܸʹڧ͍ ΞϓϦέʔγϣϯΛ࡞Δ্Ͱɺ ඞཁͳ஌ࣝΛ͜ͷҰ࡭ʹڽॖɻʯ ʢຊͷଳΑΓʣ

Slide 8

Slide 8 text

͜ͷຊͷελϯε • ʮηΩϡϦςΟ͸߈ܸํ๏͋Γ͖ʯ • ʮຊॻ࠷େͷςʔϚ͸໢ཏੑͰ͢ʯ
 ʮશ14छͷ߈ܸํ๏ʯ • ʮWebʹ͓͚ΔηΩϡϦςΟରࡦ͸Webඪ४Խ΍ MVCΑΓ΋͸Δ͔ʹ༏ઌ౓͕ߴ͘ɺݴޠͷجૅจ ๏ͷ͙࣍͢ʹ֮͑Δ΋ͷʯ ʢʮ͸͡ΊʹʯΑΓʣ

Slide 9

Slide 9 text

ಙؙຊͱൺֱ ɾ੬ऑੑʹ஫໨
 ɾಡΈ෺త ɾ߈ܸํ๏ʹ஫໨
 ɾϨϑΝϨϯεత

Slide 10

Slide 10 text

ͦͷଞΑ͍ͱ͜Ζ • ઌʹαϯϓϧίʔυΛग़ͯ͠߈ܸΛࢼΈΔ • ʮରࡦࣦഊྫʯʮෳ਺ͷରࡦྫʯʮϝϦο τɾσϝϦοτʯͳͲ಺༰͕ॆ࣮͍ͯ͠Δ

Slide 11

Slide 11 text

ಡΜͰಘΒΕͨҰͭͷڭ܇

Slide 12

Slide 12 text

ϢʔβʔΛ ৴༻͠ͳ͍

Slide 13

Slide 13 text

ϢʔβʔΛ৴༻͠ͳ͍ • ΞϓϦέʔγϣϯʹͲΜͳϦΫΤετ͕ඈΜͰ͘Δ͔Θ͔Βͳ͍ • Ϣʔβʔ͔Βͷೖྗ͸ৗʹ࠷ѱͷঢ়گΛߟ͑Δ • Ϣʔβʔ͔Βͷೖྗ͸ಟΛ͍࣋ͬͯΔͱߟ͑Δ • => αχλΠζʢhtmlspecialchars()ɺ໌ࣔతͳΩϟετɺಈతͳ ϑΝΠϧಡΈࠐΈɾ࣮ߦΛڐ͞ͳ͍ɺ… etc. Ϣʔβʔ͔ΒͷೖྗΛ௚઀γεςϜʹ౉͞ͳ͍͜ͱ͕ॏཁ

Slide 14

Slide 14 text

͜ͷຊΛಡΉͱ͖ͷ஫ҙ఺

Slide 15

Slide 15 text

ݹ͍

Slide 16

Slide 16 text

ݹ͍ • 2005೥12݄ॳ൛ୈҰ࡮ൃߦ • PHP͕ݹ͍ʢPHP4ʙ5.1ʣ
 ɾmysql_query(), register_globals, safe_mode, … etc. • ίʔυ΍ؔ਺ʹ͍ͭͯͷ෦෼͸ඞͣ
 PHPͷυΩϡϝϯτΛࢀর͠ͳ͕ΒಡΉ͜ͱ

Slide 17

Slide 17 text

ಡΉͱ͍͍ਓ • MVCϑϨʔϜϫʔΫʹ؁΍͔͞Εͨ
 ΏͱΓWebʢPHPʣΤϯδχΞ 42-ΠϯδΣΫγϣϯͳΜͯ ϑϨʔϜϫʔΫ͕ରࡦͯ͘͠ΕΔͰ͠ΐʁ )551ϔομͱ͔ ݟͯ΋Α͘Θ͔Γ·ͤΜ

Slide 18

Slide 18 text

ͳΜͷ໾ʹཱ͔ͭ • ʮ͜ΕηΩϡϦςΟʹ݀͋Δɾɾɾʁʯͱࢥͬ ͨ࣌ʹऔΓग़ͯ֬͠ೝ • ߈ܸऀͷ໨ઢͰηΩϡϦςΟΛ֬ೝͰ͖Δ • ຊ౰ʹରࡦ͞Ε͍ͯΔ͔ෆ҆ʹͳͬͯϑϨʔ ϜϫʔΫͷιʔεΛಡΈͨ͘ͳΔ

Slide 19

Slide 19 text

·ͱΊ • ʮPHPαΠόʔςϩͷٕ๏ʯ͸߈ܸํ๏ʹ஫໨ͨ͠Web ηΩϡϦςΟͷϨϑΝϨϯεɻͨ·ʹಡΈͨ͘ͳΔຊɻ • ֶ΂ΔηΩϡϦςΟͷݪଇ
 ʮϢʔβʔΛ৴༻͠ͳ͍ʯ • ٕज़ॻͱͯ͠͸͔ͳΓݹ͍ຊͳͷͰ
 10೥ͱ͍͏࣌୅ͷҧ͍ʹ஫ҙ ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

Slide 20

Slide 20 text

ҎԼิॿεϥΠυ

Slide 21

Slide 21 text

ʮશ14छͷ߈ܸํ๏ʯ 1.XSSʢΫϩεαΠτεΫϦϓςΟϯάʣ 2.ίϯςϯπ಺ʹJavaScriptຒΊࠐΈ 3.SQLΠϯδΣΫγϣϯ 4.CSRFʢΫϩεαΠτϦΫΤετϑΥʔδΣϦʣ 5.ψϧόΠτ߈ܸ 6.σΟϨΫτϦτϥόʔαϧ 7.؀ڥม਺Ԛછ߈ܸ 8.HTTPϨεϙϯε෼ׂ߈ܸ 9.ΠϯΫϧʔυ߈ܸ 10.evalར༻߈ܸ 11.֎෦ίϚϯυ࣮ߦ߈ܸ 12.ϑΝΠϧΞοϓϩʔυ߈ܸ 13.ηογϣϯϋΠδϟοΫ 14.εύϜϝʔϧ౿Έ୆߈ܸ શ14छͱஅݴͯ͠Δ => ໢ཏੑ

Slide 22

Slide 22 text

࡞ऀ • GIJOEʢຊ໊ ޙ౻ๆཅʣ • ౦ژग़਎ɻେֶ࣌୅͸ੜ෺ֶΛઐ߈͠…ʢུʣ • ߴ໦ߒޫࢯͱGIJOEࢯͷ࿦૪ʹ͍ͭͯɺGIJOEࢯ ʹ൓࿦ͯ͠ΈΔ
 http://blogs.yahoo.co.jp/quitthemusic/ 24047659.html