Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サービス開発する平成の君に 昭和の僕から伝えたい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
790
大掃除 on Rails @Otemachi.rb #12
yaboojp
1
89
使わない機能の倒し方 @s-dev talks 〜サービス開発勉強会〜 大忘年LT大会
yaboojp
0
120
Other Decks in Technology
See All in Technology
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
420
React Nativeでの OTA Updateって、 どう説明する?
ichiki1023
0
140
AI駆動開発、viviONの1年 ── うまくいったこと・いかなかったこと
vivion
0
140
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
350
[2026 Oracle Technical Deep Dive] エンタープライズAIエージェントを支えるOCIソリューション。ラインナップと特徴を理解しよう! (2026年9月17日開催)
oracle4engineer
PRO
0
280
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
5
2k
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
520
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
160
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
380
ビジネスを止めない技術的負債の返済のための戦略とその手法 - 技術的負債と向き合う / Complexity and Simplicity
soudai
PRO
3
480
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
110
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
280
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Designing Experiences People Love
moore
143
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
My Coaching Mixtape
mlcsv
0
330
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
700
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.Θ͞Εͳ͍
ΊͬͪΌืू
͝ਗ਼ௌ͓͓͖ʹ