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
SQL Injection
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kubo-hide-kun
January 27, 2021
Programming
120
0
Share
SQL Injection
kubo-hide-kun
January 27, 2021
More Decks by kubo-hide-kun
See All by kubo-hide-kun
CA BASE NEXT でスクロールに 連動したUIを構築した話
kubo_programmer
1
590
ハイレベルな環境こそが最高である 科学的なお話
kubo_programmer
0
170
IPアドレスとは何か?
kubo_programmer
0
3.7k
クライアント/サーバーシステム
kubo_programmer
0
15k
DHCPサーバ
kubo_programmer
0
3.3k
How to make Readable Slide
kubo_programmer
0
150
AtomicDesignの説明と所感
kubo_programmer
0
1.9k
Moonblock入門
kubo_programmer
3
1.4k
TCP/UDPの違い
kubo_programmer
4
5.9k
Other Decks in Programming
See All in Programming
Agent Skills を社内で育てる仕組み作り
jackchuka
1
2.2k
inferと仲良くなる10分間
ryokatsuse
1
140
Cloudflare で始める Data Platform
ta93abe
0
200
プロパティの順序で型推論が壊れる!? TypeScript6.0の修正からContext-Sensitivityの仕組みを追う
bicstone
2
590
Firefoxにコントリビューションして得られた学び
ken7253
2
170
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
170
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
160
cloudnative conference 2026 flyle
azihsoyn
1
200
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
0
120
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
230
ふにゃっとしない名前の付け方 〜哲学で茹で上げる、コシのあるソフトウェア設計〜
shimomura
0
130
【ディップ|26年新卒研修資料】OpenAPI/Swagger REST API研修
dip_tech
PRO
0
270
Featured
See All Featured
How to build a perfect <img>
jonoalderson
1
5.5k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Six Lessons from altMBA
skipperchong
29
4.2k
HDC tutorial
michielstock
2
670
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
110
Testing 201, or: Great Expectations
jmmastey
46
8.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
The Invisible Side of Design
smashingmag
302
52k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
510
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
The Curse of the Amulet
leimatthew05
1
12k
Transcript
42-ΠϯδΣΫγϣϯ 2021.01.28 - クボ太郎
・SQL について ・SQLインジェクション is 何?
SQL について
データベースとは, テキストやデーアを保存するためのツール 3 σʔλϕʔε σʔλϕʔε ニンジン 文字 (例: 名前) 3
数値 (例: 個数)
JE OBNF QSJDF EBUF ΓΜ͝ δϟΨΠϞ
ۄͶ͗ χϯδϯ レコード ( 横 ) カラム ( 縦 ) データベースは,下の図のような表データを管理している. 表のことを「テーブル」,縦の列のことを「カラム」, 横の列のことを「レコード」と呼ぶ.
データベースに送る命令 = クエリ 3 σʔλϕʔε σʔλϕʔε クエリ データ データベース内の 〇〇というデータを下さい!!
・ SELECT文 ・ INSERT文 ・ UPDATE文 ・ DELETE文 ・・・ ・・・
・・・ ・・・ データを取得する命令 データを追加する命令 データを更新する命令 データを削除する命令 SQLでよく使われるクエリ
SQLインジェクション is 何?
SQLインジェクションとは, Webサイトの入力フォームなどに『SQLクエリを含む文字列』を入力することで, デーアベースを不正操作するサイバー攻撃の一種です. ID: PASSWORD: SQL文を含む文字列を 「ID」 や 「PASSWORD」 に入力
ログイン成功
攻撃事例: 前提条件として,以下のようなSQL文で画面から入力された 「ID」と「パスワード」がデータベースに存在するか確認し、 存在すればログイン成功、存在しなければログイン失敗と判断します。 SELECT id, pass FROM login_user WHERE
id=‘入力されたid’ AND pass=‘入力されたパスワード’; idとpassのデータを 取得する login_userという テーブルから idが ’入力されたid’ と passが ‘入力されたパスワード’ と 一致するもののみという条件
攻撃方法: 「ID」に以下の文字列を入力してログインするだけで不正ログイン可能です。 ※パスワードには何もいれなくて問題ないです。 1’ or ‘1’ = ‘1’; --
なぜ攻撃可能なのか? 「id」の条件が "1" または"1 = 1”という条件になので、結果は必ずtrueです。 そしてSQL文で「--」はコメントアウトを表します。 そのため,条件文「-- AND pass=‘';」はコメントとして扱われ無視されます。
SELECT id, pass FROM login_user WHERE id=‘1’or’1’=‘1’; --’ AND pass=‘ ’;
おしまい !!