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
0
780
サービス開発する平成の君に 昭和の僕から伝えたい7つのこと@平成.rb #2
YABOO JAPAN
March 14, 2019
Tweet
Share
More Decks by YABOO JAPAN
See All by YABOO JAPAN
RubyKaigiでもらった熱量がOSSに変換された話@AFTER RubyKaigi 2019
yaboojp
0
2.5k
RailsでViewModel導入に 挫折しかけてる話@表参道.rb #44
yaboojp
1
910
RailsのCacheつかってますか?@表参道.rb #44
yaboojp
0
760
夏休みの宿題 8/31にやらない話 @Otemachi.rb #14
yaboojp
0
330
ぼくが考える最強のApplicationModel @表参道.rb #43
yaboojp
0
660
大掃除 on Rails @Otemachi.rb #12
yaboojp
1
59
使わない機能の倒し方 @s-dev talks 〜サービス開発勉強会〜 大忘年LT大会
yaboojp
0
100
Other Decks in Technology
See All in Technology
AIのAIによるAIのための出力評価と改善
chocoyama
2
580
Prox Industries株式会社 会社紹介資料
proxindustries
0
330
エンジニア向け技術スタック情報
kauche
1
280
Snowflake Summit 2025全体振り返り / Snowflake Summit 2025 Overall Review
mtpooh
2
410
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
4
770
セキュリティの民主化は何故必要なのか_AWS WAF 運用の 10 の苦悩から学ぶ
yoh
1
190
「良さそう」と「とても良い」の間には 「良さそうだがホンマか」がたくさんある / 2025.07.01 LLM品質Night
smiyawaki0820
1
280
CursorによるPMO業務の代替 / Automating PMO Tasks with Cursor
motoyoshi_kakaku
0
330
OpenHands🤲にContributeしてみた
kotauchisunsun
1
470
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
100
製造業からパッケージ製品まで、あらゆる領域をカバー!生成AIを利用したテストシナリオ生成 / 20250627 Suguru Ishii
shift_evolve
PRO
1
140
Wasm元年
askua
0
150
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
How STYLIGHT went responsive
nonsquared
100
5.6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Site-Speed That Sticks
csswizardry
10
660
For a Future-Friendly Web
brad_frost
179
9.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Balancing Empowerment & Direction
lara
1
380
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
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.Θ͞Εͳ͍
ΊͬͪΌืू
͝ਗ਼ௌ͓͓͖ʹ