Enviar búsqueda
Cargar
Cake Phpでの安全なサイトの作り方1(Sqlインジェクション)
•
1 recomendación
•
1,668 vistas
柴田 篤志
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 14
Recomendados
Desk logo
Desk logo
DESK Education
NAVEEN CV
NAVEEN CV
Naveen Chandra
Como eu nasci?
Como eu nasci?
Andre de Castro Zorzo
Qué Son Las Ti Cs
Qué Son Las Ti Cs
scandelas
Blended uses of EduTec Language solution – with tutor
Blended uses of EduTec Language solution – with tutor
Ahmed M Hassan
Resume_2016 (1)
Resume_2016 (1)
Trevor Rezac
HawaiianPunchCasestudy
HawaiianPunchCasestudy
Sade Adelakun
Certificate
Certificate
Reed MacMillan
Recomendados
Desk logo
Desk logo
DESK Education
NAVEEN CV
NAVEEN CV
Naveen Chandra
Como eu nasci?
Como eu nasci?
Andre de Castro Zorzo
Qué Son Las Ti Cs
Qué Son Las Ti Cs
scandelas
Blended uses of EduTec Language solution – with tutor
Blended uses of EduTec Language solution – with tutor
Ahmed M Hassan
Resume_2016 (1)
Resume_2016 (1)
Trevor Rezac
HawaiianPunchCasestudy
HawaiianPunchCasestudy
Sade Adelakun
Certificate
Certificate
Reed MacMillan
Nagoya.phpについて
Nagoya.phpについて
柴田 篤志
ライフハックでストレスフリーな仕事術
ライフハックでストレスフリーな仕事術
柴田 篤志
ソーシャルメディアを利用したビジネス展開
ソーシャルメディアを利用したビジネス展開
柴田 篤志
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
柴田 篤志
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
柴田 篤志
Cake Phpで簡単問い合わせフォームの作り方
Cake Phpで簡単問い合わせフォームの作り方
柴田 篤志
Cake Php開発事例
Cake Php開発事例
柴田 篤志
Life Hack
Life Hack
柴田 篤志
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
柴田 篤志
Cake PhpでやってみようOpen Id入門
Cake PhpでやってみようOpen Id入門
柴田 篤志
一六社ブログ-プラグイン作成入門
一六社ブログ-プラグイン作成入門
柴田 篤志
JavaScript&Firebug入門
JavaScript&Firebug入門
柴田 篤志
Cake Php ページ送り機能
Cake Php ページ送り機能
柴田 篤志
Cake Php パン屋へ行こう
Cake Php パン屋へ行こう
柴田 篤志
Cake Php キャッシュのやり方
Cake Php キャッシュのやり方
柴田 篤志
開発ツールの紹介(080316)
開発ツールの紹介(080316)
柴田 篤志
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
柴田 篤志
CakePHPのコンポーネントの使い方(080316)
CakePHPのコンポーネントの使い方(080316)
柴田 篤志
第1回SE勉強会(080302)
第1回SE勉強会(080302)
柴田 篤志
Más contenido relacionado
Más de 柴田 篤志
Nagoya.phpについて
Nagoya.phpについて
柴田 篤志
ライフハックでストレスフリーな仕事術
ライフハックでストレスフリーな仕事術
柴田 篤志
ソーシャルメディアを利用したビジネス展開
ソーシャルメディアを利用したビジネス展開
柴田 篤志
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
柴田 篤志
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
柴田 篤志
Cake Phpで簡単問い合わせフォームの作り方
Cake Phpで簡単問い合わせフォームの作り方
柴田 篤志
Cake Php開発事例
Cake Php開発事例
柴田 篤志
Life Hack
Life Hack
柴田 篤志
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
柴田 篤志
Cake PhpでやってみようOpen Id入門
Cake PhpでやってみようOpen Id入門
柴田 篤志
一六社ブログ-プラグイン作成入門
一六社ブログ-プラグイン作成入門
柴田 篤志
JavaScript&Firebug入門
JavaScript&Firebug入門
柴田 篤志
Cake Php ページ送り機能
Cake Php ページ送り機能
柴田 篤志
Cake Php パン屋へ行こう
Cake Php パン屋へ行こう
柴田 篤志
Cake Php キャッシュのやり方
Cake Php キャッシュのやり方
柴田 篤志
開発ツールの紹介(080316)
開発ツールの紹介(080316)
柴田 篤志
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
柴田 篤志
CakePHPのコンポーネントの使い方(080316)
CakePHPのコンポーネントの使い方(080316)
柴田 篤志
第1回SE勉強会(080302)
第1回SE勉強会(080302)
柴田 篤志
Más de 柴田 篤志
(19)
Nagoya.phpについて
Nagoya.phpについて
ライフハックでストレスフリーな仕事術
ライフハックでストレスフリーな仕事術
ソーシャルメディアを利用したビジネス展開
ソーシャルメディアを利用したビジネス展開
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
オープンソースカンファレンス2009Nagoya
オープンソースカンファレンス2009Nagoya
Cake Phpで簡単問い合わせフォームの作り方
Cake Phpで簡単問い合わせフォームの作り方
Cake Php開発事例
Cake Php開発事例
Life Hack
Life Hack
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
Google Maps Api活用事例~飲食店案内ネット一六社マップ~
Cake PhpでやってみようOpen Id入門
Cake PhpでやってみようOpen Id入門
一六社ブログ-プラグイン作成入門
一六社ブログ-プラグイン作成入門
JavaScript&Firebug入門
JavaScript&Firebug入門
Cake Php ページ送り機能
Cake Php ページ送り機能
Cake Php パン屋へ行こう
Cake Php パン屋へ行こう
Cake Php キャッシュのやり方
Cake Php キャッシュのやり方
開発ツールの紹介(080316)
開発ツールの紹介(080316)
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
CakePHPで開発する時に統一しておきたいコーディング内容(080316)
CakePHPのコンポーネントの使い方(080316)
CakePHPのコンポーネントの使い方(080316)
第1回SE勉強会(080302)
第1回SE勉強会(080302)
Cake Phpでの安全なサイトの作り方1(Sqlインジェクション)
1.
CakePHP での安全なサイトの作り方1 ~
SQL インジェクション~ 第 10 回 高蔵寺 SE 勉強会 2008/7/6 (日)
2.
SQL インジェクションとは
3.
「インジェクション」は「注入」という意味。 つまり SQL
インジェクションは, Web サーバーの背後で動くデータベースに SQL コマンドを送り込み,そのコマンドを実行させる攻撃方法を意味している。 IT Pro より
4.
SQL インジェクションの脆弱性があると どうなるのか?
5.
・情報の漏えい ・データの改ざん ・不正ログイン
・システムの乗っ取り
6.
CakePHP ではどのように対応するか?
7.
例1 $data =
$this->Sample->findAll('id=' . $value); コントローラーにこんな感じで書くと、 $value (入力値)に「 1 or 1=1 」というデータが渡されると、 SQL の条件が「 WHERE id=1 or 1=1 」となり、 全てのデータが取得できてしまいます。
8.
例2 ( CakePHP1.1
の場合) $conds = array('id' => '= ' . $value); $data = $this->Sample->findAll($conds); コントローラーにこんな感じで書くと、 $value (入力値)に「 1 or 1=1 」というデータが渡されると、 SQL 文は「 WHERE `id` = '1 or 1=1' 」という感じになり、 例1の様な全件取得はなくなります。 ※ 「 '= ' 」の用にイコールの後のスペースが必要
9.
例3( CakePHP1.2 RC2
の場合) $conds = array('id' => $value); $data = $this->Sample->findAll($conds); コントローラーにこんな感じで書くと、 $value (入力値)に「 1 or 1=1 」というデータが渡されると、 SQL 文は「 WHERE `id` = '1 or 1=1' 」という感じになり、 例1の様な全件取得はなくなります。 ※ 例2の様にイコールは必要なし
10.
+ α $conds
= array('id' => '> ' . $value); 比較演算子を使う方法 CakePHP1.1 の場合、先ほどの例の通り $conds = array('id >' => $value); CakePHP1.2 RC2 の場合は前に付けます
11.
例4 $data =
$this->Sample->findAllById($value); コントローラーにこんな感じで書くと、 $value (入力値)に「 1 or 1=1 」というデータが渡されると、 SQL の条件が「 WHERE `Sample`.`id` = '1 or 1=1' 」となり、 全件取得を回避できます。
12.
+ α function
conditionKeysToString (~) { quote 処理をやってくれている場所は、 cake/libs/model/datasources/dbo_source.php ここで条件の部分の SQL を作っているので、 WHERE 句でどうやったら良いか迷った場合はここを見てみると 良いかもしれません。
13.
保険的対策も必要 ・エラーメッセージの表示をしない ・データベースアカウントの権限設定
・ DB の格納情報を必要最低限にする ・パスワードは暗号化して保存
14.
終わり