Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
800
サービス開発する平成の君に 昭和の僕から伝えたい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.6k
RailsでViewModel導入に 挫折しかけてる話@表参道.rb #44
yaboojp
1
960
RailsのCacheつかってますか?@表参道.rb #44
yaboojp
0
780
夏休みの宿題 8/31にやらない話 @Otemachi.rb #14
yaboojp
0
340
ぼくが考える最強のApplicationModel @表参道.rb #43
yaboojp
0
700
大掃除 on Rails @Otemachi.rb #12
yaboojp
1
71
使わない機能の倒し方 @s-dev talks 〜サービス開発勉強会〜 大忘年LT大会
yaboojp
0
100
Other Decks in Technology
See All in Technology
Microsoft Agent 365 を 30 分でなんとなく理解する
skmkzyk
1
1k
Edge AI Performance on Zephyr Pico vs. Pico 2
iotengineer22
0
120
AI時代の開発フローとともに気を付けたいこと
kkamegawa
0
2.7k
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
250
MLflowで始めるプロンプト管理、評価、最適化
databricksjapan
1
140
技術以外の世界に『越境』しエンジニアとして進化を遂げる 〜Kotlinへの愛とDevHRとしての挑戦を添えて〜
subroh0508
1
430
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
110
MapKitとオープンデータで実現する地図情報の拡張と可視化
zozotech
PRO
1
130
Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す! / 20251206 Kazuki Takahashi
shift_evolve
PRO
1
670
今からでも間に合う!速習Devin入門とその活用方法
ismk
1
630
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
300
品質のための共通認識
kakehashi
PRO
3
240
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Speed Design
sergeychernyshev
33
1.4k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
390
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Designing for Performance
lara
610
69k
RailsConf 2023
tenderlove
30
1.3k
Raft: Consensus for Rubyists
vanstee
141
7.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.Θ͞Εͳ͍
ΊͬͪΌืू
͝ਗ਼ௌ͓͓͖ʹ