Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サービス開発する平成の君に 昭和の僕から伝えたい7つのこと@平成.rb #2
Search
YABOO JAPAN
March 14, 2019
Technology
820
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サービス開発する平成の君に 昭和の僕から伝えたい7つのこと@平成.rb #2
YABOO JAPAN
March 14, 2019
More Decks by YABOO JAPAN
See All by YABOO JAPAN
RubyKaigiでもらった熱量がOSSに変換された話@AFTER RubyKaigi 2019
yaboojp
0
2.8k
RailsでViewModel導入に 挫折しかけてる話@表参道.rb #44
yaboojp
1
1k
RailsのCacheつかってますか?@表参道.rb #44
yaboojp
0
790
夏休みの宿題 8/31にやらない話 @Otemachi.rb #14
yaboojp
0
360
ぼくが考える最強のApplicationModel @表参道.rb #43
yaboojp
0
780
大掃除 on Rails @Otemachi.rb #12
yaboojp
1
89
使わない機能の倒し方 @s-dev talks 〜サービス開発勉強会〜 大忘年LT大会
yaboojp
0
110
Other Decks in Technology
See All in Technology
AIエージェントを雇う前に決める5つのこと
knishioka
1
150
生成AI時代の クレデンシャルとパーミッション設計
nrinetcom
PRO
3
1.5k
Instana&Bob トラブルシュートハンズオン
mayamasaki68
0
110
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
120
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
2
2.1k
V8コントリビュート超入門
riyaamemiya
0
130
はじめてのDatabricks:技術者向けワークショップ / beginner-workshop
databricksjapan
PRO
0
140
DMMブックスのNext.js化を加速させるAI活用 / Migrating DMM Books to Next.js with AI
kentarom
1
330
少人数データチームのDevin活用実践事例
runandy16
2
430
When Does a Local Qwen Start to Break
morshoto
0
160
20260903 Tokyo Jazug Night #62 | Azure エンジニアよ、 その環境は本当にセキュアか?
olivia_0707
1
610
DINO-EdgeQuery:Edge-First Polygon Decoding for Building Footprint Extraction from Satellite Imagery
lehupa
0
140
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
660
Optimizing for Happiness
mojombo
378
71k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Site-Speed That Sticks
csswizardry
13
1.5k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
240
The SEO Collaboration Effect
kristinabergwall1
1
550
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
KATA
mclloyd
PRO
35
15k
Unsuck your backbone
ammeep
672
58k
Transcript
αʔϏε։ൃ͢Δฏͷ܅ʹ তͷ͔Β͍͑ͨ7ͭͷ͜ͱ @yaboojp ฏ.rb #2 2019/3/14
Self • Identifer • େ༅ Ӭ / Ϡϒ / @yaboojp
• Job: • 22Inc. ۀ -> Co-Founder & CTO • NTTdata -> ৽ଔͰΤϯδχΞ • Ed • େֶ -> ࣗવݴޠղੳͷݚڀ • ֶੜϕϯνϟʔ -> ҬݶఆϑϦϚαΠτʢPHPʣ • Location • ژ -> ౦ژ • Favorites • ΫϥϑτϏʔϧ, Իָ, όΠΫ, JALϚΠϧ
তͱʁ • ͡Ίͯॻ͍ͨίʔυNiftyʹஔ͍ͨHTML • <table>ͱ<frame>ͰϨΠΞτͨ͠ૉఢͳ ϚʔΫΞοϓɻCSSͳ͠ɻελΠϧఆٛ
͓ؾ࣋ͪ ত ͷ ͩ
ΊͬͪΌ͍͍͜ͱॻ͍ͯ͋ͬͨ
ؾΛऔΓͯ͠
ࠓͷ • ϦʔϯελʔτΞοϓͩͬͨRailsϓϩδΣΫ τ • ΕΑ͔ͬͨ • ͬͯΑ͔ͬͨ
None
None
ؒͷ͕ΜΓ
versions 201311݄ 3.2 20158݄ 4.2 201812݄ 5.0 20191݄ 5.2
Ұͨ͠%#εΩʔϚ खڧ͍Ͱ
DBઃܭ • ActiveRecordͷόϦσʔγϣϯ͋ͬ͞Γ͢ Γൈ͚Δ • DBεΩʔϚมߋେม • ಛʹ੍σʔλύονඞཁʹͳΔ • NOT
NULL, UNIQUE INDEX, FORIGN KEY
ྫ͑
࣮ߦͰ͖ͳ͍Migration
ϧʔςΟϯά ؆୯ʹม͑ΕΜ
URLઃܭ • ಛʹAPIͳͲมߋ͠ʹ͍͘ • ໊લۭؒͪΌΜͱ͚ͱ͘
URLઃܭͷഁ Πϝʔδ • େྔͷόʔδϣχϯά
URLઃܭͷഁ Πϝʔδ • େྔͷϦμΠϨΫτ
ηΩϡϦςΟଈࢮ͢Δ͠ ϗϯϚʹؾ͚͌ͭΔΜͰ
ηΩϡϦςΟ • ͱΓ͋͑ͣɺࢮ͵ؾͰ on Rails • cookieηογϣϯΘͳ͍ʢηογϣϯϋΠδϟοΫʣ • ΧδϡΞϧʹprotect_from_forgeryΛΦϑΒͳ͍ʢCSRFʣ •
ActiveRecordͷΫΤϦʹࣜల։ͨ͠จࣈྻΛ͞ͳ͍ʢSQL Injectionʣ • FragmentCache҆қʹΘͳ͍
SQL Injection • ͜Ε͚ͩͩͱͳ͘ݟ͑Δ
SQL Injection • தͷ࣮ͳΜͯΒΜ͕ͳ
Ωϟογϡ ࣄނྫ
Ωϟογϡ ࣄނྫ !QPTUͷJE VQEBUFE@BU ͕Ωʔͱͯ͠ΘΕΔ ॳճΞΫηεͷϢʔβ͕ BENJOͷ߹ ͜Ε͕ΩϟογϡʹͷΔ
ͱͷࠩ ͋·Γʹେ͖͍
ςετͷଘࡏ • ΧόϨοδͦ͜·Ͱؾʹ͠ͳͯ͘ɻ • ࡉ͔͘ॻ͖͗ͯ͢ෆཁʹͳͬͨΓᐫʹͳΔ͜ͱɻ • E2E,RequestSpec࠷શମΛΧόʔ͢Δ͙Β͍ཉ͍͠ • ModelSpecɺਖ਼ৗܥͷ1ύλʔϯ͚ͩͰଘࡏ͢Δҙ ຯେ͖͍ɺςετͷଘࡏ
0ͱ1ͷࠩେ͖͍ɻ
versions 201311݄ 3.2 20158݄ 4.2 201812݄ 5.0 20191݄ 5.2 ςετ
ສΞϓϦϢʔβ ☓
උେࣄͰ
ίʔυআ • ৗతʹΔ͜ͱͰফ͠ʹ͕͋͘͞Εʹૣ Ίʹؾ͚Δ • CSS/JS/IMGͷϧʔϧ • ίʔσΟϯά/໋໊ن • SPAʹ͢Δͷ͔͠ͳ͍ͷ͔ʁ
͜·ΊͳGemΞοϓσʔτ • ཷΊΔͱͲΜͲΜΒͳ͘ͳΔѱ॥ • dependabotΦεεϝ
None
ใେࣄ
Θ͞Εͳ͍ • ActiveRecordͷCallback • ࣌ϙδςΟϒͳΤϯτϦ͕ଟ͔ͬͨɻ • ϩδοΫ͕ॻ͔Ε͗ͯ͢ɺͲ͜Ͱߋ৽͞Ε ͔ͨΘ͔Βͳ͍ɻ • ίʔϧόοΫࠈʹͳΔ
·ͱΊ 1.DBઃܭ ৻ॏʹ 2.URLઃܭ৻ॏʹ 3.ηΩϡϦςΟͳʹΑΓେࣄ 4.ςετͷଘࡏ 0ͱ1ͷࠩେ͖͍ 5.ෆཁίʔυ͙͢আ 6.Gemͷߋ৽ΛఘΊͳ͍ 7.Θ͞Εͳ͍
ΊͬͪΌืू
͝ਗ਼ௌ͓͓͖ʹ