SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
Rails 4 Security
エレクトロニック・サービス・イニシアチブ
HTTP://WWW.E-SI.JP/
自己紹介
 氏名:大垣靖男(Ohgaki Yasuo)
 メール:yohgaki@ohgaki.net
 SNS: yohgaki (Twitter/Facebook/Gmail/LinkedIn)
 職業:
 エレクトロニック・サービス・イニシアチブ有限会社社長
 PHP技術者認定機構顧問・BOSS CON CTO・岡山大学大
学院講師
 Webアプリソースコード検査
(Ruby/PHP/Java/C#/ObjectiveC)など
 OSS開発者:PHP・Momonga-Linuxコミッター
2
PROVE for PHP 3
Windows7でRails4 4
注意:
すべてのセキュリティ対策を
解説していません!
このスライドに記載されている対策のみが対策ではありません。
5
Rails4
6
Rails4 7
http://edgeguides.rubyonrails.org/4_0_release_notes.html
Rails4 Major Features
Ruby 2.0推奨、1.9.3+以上
Turbolinks
Russiaon Doll Caching
Strong Parameters
8
http://edgeguides.rubyonrails.org/4_0_release_notes.html
ITセキュリティ
9
ITセキュリティ?
ITセキュリティ
Confidentiality
IntegrityAvailability
10
機密性 – 許可した者のみアクセス
完全性 – 情報・処理が正確・安全可用性 – 利用者が利用できる
ITセキュリティ対策?
リスクの識別
緩和策の選別
緩和策の導入
状態の検査
11
よくあるカン違い
セキュリティ対策は完璧でなければならない!
12
適切な緩和策
リスク管理
セキュリティ対策
法令、標準、
ベストプラクティス
脆弱な対策でも
適当なセキュリティ対策
となる場合も
構造とセキュリティ
13
アプリの基本構造 14
Rails アプリ ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ 外部システム
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
ライブラリ 外部システム
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
信頼できるもの? 15
Rails アプリ
ライブラリ 外部システム ライブラリ 外部システム
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
初期状態ではアプリのみ
プログラムの基本構造
入力
•入力値のバリデーション
•入力値により適切なビジネスロジックを選択
処理
•定義された処理を実行
出力
•出力先の入力仕様に適合した出力の生成
•エスケープ、ヘルパー、バリデーション
16
脆弱性
脆弱性
脆弱性
入力バリデーション
•入力パラメータは入力処理として
バリデーションする
ベストプラクティス
•入力パラメータを入力処理ではない部分で
バリデーションする
バッドプラクティス
17
セキュリティ対策の基本
入力・出力制御
•SANS/CWE TOP25 Monster Mitigation #1
•ISO27000 / ISMS
•多くのベストプラクティス、セキュリティ標準
入力バリデーション
•SANS/CWE TOP25 Monster Mitigation #2
•エスケープ → ヘルパー → バリデーション
出力コントロール
18
順番が重要
入力・出力のコントロール 19
フレームワーク 。 アプリ
ライブラリ 外部システム ライブラリ 外部システム
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
入力・出力のコントロール
入力・出力のコントロール
Strong Parameter
20
最も重要な変更
Strong Parameter
21
入力
•入力値のバリデーション
•入力値により適切なビジネスロジックを選択
処理
•定義された処理を実行
出力
•出力先の入力仕様に適合した出力の生成
•エスケープ、ヘルパー、バリデーション
Rails3のバリデーションは
Model
Rails4のバリデーションは
Controller
Controller
Model
View
Rails3 22
入力
•入力値のバリデーション
•入力値により適切なビジネスロジックを選択
処理
•定義された処理を実行
出力
•出力先の入力仕様に適合した出力の生成
•エスケープ、ヘルパー、バリデーション
Rails3のバリデーションは
Model
Controller
Model
View
ActiveRecordを利用しない場合、
バリデーションを行えない。
欠陥
ActiveModel?!
Rails3
Rail3の入出力制御 23
アプリ
ライブラリ 外部システム ライブラリ 外部システム
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
バリデーション
出力エスケープ 出力エスケープ
Rails3
Rails4 24
入力
•入力値のバリデーション
•入力値により適切なビジネスロジックを選択
処理
•定義された処理を実行
出力
•出力先の入力仕様に適合した出力の生成
•エスケープ、ヘルパー、バリデーション
Rails4のバリデーションは
Controller
Controller
Model
View
ActiveRecord・ActiveModelの利用に
関わらず、バリデーションが行える
ベスト
プラクティス
Rails4
Rails4の入出力制御 25
アプリ
ライブラリ 外部システム ライブラリ 外部システム
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
入力バリデーション・出力エスケープ
バリデーション
出力エスケープ
Rails4
セキュリティ対策ポイント 26
アプリ
ライブラリ 外部システム ライブラリ 外部システム
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
ライブラリ
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
ライブラリ
ライブラリ
ライブラリ
外部システム
外部システム
外部システム
Webサービス
Webサービス
Webサービス
ブラウザ
ブラウザ
ブラウザ
入力バリデーション・出力エスケープ
バリデーション
出力エスケープ
Rails4
バリデーション
出力エスケープ
古い手法
Weak Parameter
27
@post.update_attributes(post_params)
Rails3
Modelのバリデーションが動作
@post.update_attributes(:user, 'User Name')
Rails3
@post.update_column(:user, 'User Name')
Modelのバリデーション無し
新しい手法
Strong Parameter
28
class UsersController < ApplicationController
private
def user_params
params.require(:user).permit(:name, :email).validate(self)
end
end
Controllerでバリデーションが動作
メソッドチェインでバリデーション
https://github.com/rails/strong_parametersRails3
Rails4
追加するだけ
古い手法の変更点 29
@post.update_attributes(post_params)
Rails3
Modelのバリデーションが動作
@post.update_attributes(:user, 'User Name')
Rails3
@post.update_column(:user, 'User Name')
Modelのバリデーション無し
@post.update(post_params)
Rails4
@post.update_column(post_params)
Rails4
Modelのバリデーション?
• 多重のセキュリティ・フェイルセーフ
• Modelでもバリデーションを行う方がより安全
• ただしStrong Parameterと全く同じバリデーション
であればあまり意味がない
• ゆるいホワイトリストバリデーションが適当
• 例:数値なら文字が数字だけか?文字列なら常識的な
長さを超えないか?など
Modelのバリデーションは行うべきか?
30
ベスト
プラクティス
Defense for Major Threats
31
Javascript
インジェクション
•直接出力には<%= raw var %>, <%== var %>
•h, html_escape*, json_escape, sanitize_css
•無効化は<% somePost.content.html_safe %>
•URLエンコード:url_encode(s)
ERB:デフォルトHTMLエスケープ
•FormHelper: check_box, etc
•FormTagHelper: HTMLフォームタグ
•UrlHelper: link_to*, button_to, mail_to
•SanitizeHelper: sanitize*, strip_*
•JavaScriptHelper: escape_javascript
•その他、沢山
ActionView::Helpers::*
32
Javascript
インジェクション
•多岐に渡る攻撃ソース
•フォーム、URL、クッキー、JSON、データベース、ログファイル、ヘッダー、メー
ル、etc
•ブラウザは「複数」の出力先
•HTTPヘッダー、HTMLコンテント、URL、CSS、Javascript、JSON
•DOMベースJavascriptインジェクション
•クライアント側でのインジェクションが可能
•クライアントで実行されると全くログに残らない(検出不可能)
Javascriptインジェクションは最も厄介な問題
•学習とトレーニング – さまざまな原因と攻撃手法と対策を知る
総合的な対策が重要
33
SQLインジェクション
•ORMにより保護 – find, update, etc
•プレイスホルダ
ActiveRecord
•sanitize*メソッドでエスケープ
ActiveRecord::Sanitization
34
User.where(["name = ? and email = ?", "Joe", "joe@example.com"])
# SELECT * FROM users WHERE name = 'Joe' AND email = 'joe@example.com';
User.where(["name = :name and email = :email",
{ name: "Joe", email: "joe@example.com" }])
# SELECT * FROM users WHERE name = 'Joe' AND email = 'joe@example.com';
Rails4
sanitize_sql([“name=‘%s’ and group_id=‘%s’, ”foo‘bar“, 4])
→ "name='foo''bar' and group_id='4'"
CSRF 35
http://guides.rubyonrails.org/security.html#cross-site-request-forgery-csrf
CSRF
• ActionView
• Controller
ビルトイン
36
protect_from_forgery secret: "123456789012345678901234567890..."
<head> <%= csrf_meta_tags %> </head>
# File actionpack/lib/action_view/helpers/csrf_helper.rb, line 19
def csrf_meta_tags
if protect_against_forgery?
[
tag('meta', :name => 'csrf-param', :content => request_forgery_protectio
tag('meta', :name => 'csrf-token', :content => form_authenticity_token)
].join("¥n").html_safe
end
end
CSRF
CSRF対策のオプション
37
protect_from_forgery with: :exception # default
protect_from_forgery with: :null_session # セッションを空に
protect_from_forgery with: :rest_session # 新しいセッション
Rails4
Rails3のデフォルト
Rails4のデフォルト(推奨)
Session管理
•攻撃手法:Javascriptインジェクション、盗聴
•盗聴対策にはSSL有効化が効果的
•config.force_ssl = true
SessionIDの乗っ取り
•コリージョンディテクション(?)
•特に問題なし
Session IDはMD5
•!ベストプラクティス
•Rails4では暗号化 CWE-311 SNS/CWE TOP 25 #8
SessionのデフォルトはCookieStore
38
Session Fixation
• Railsのセッション管理機構もセッション固定化に脆弱
• ログイン後のセッションID更新は必須
• reset_session
セッションIDの固定化
39
http://guides.rubyonrails.org/security.html#session-fixation
ファイル
アップロード・ダウンロード
•ファイル名に”../”を付けて他のディレクトリに保存
•ファイルアップロードに限らずファイル名を使う場合に注意
ディレクトリトラバーサル
Railsセキュリティガイドの例
•“../”を削除するだけで十分か?不十分か?
問題
40
def sanitize_filename(filename)
filename.strip.tap do |name|
# NOTE: File.basename doesn't work right with Windows paths on Unix
# get only the filename, not the whole path
name.sub! /¥A.*(¥¥|¥/)/, ''
# Finally, replace all non alphanumeric, underscore
# or periods with underscore name.gsub! /[^¥w¥.¥-]/, '_'
end
end
ブラックリスティング
簡単な物でも間違えやすい
• ディレクトリトラバーサル攻撃でよくある間違い
”../”を削除するだけで十分か?不十分か?
• Unicode正規化やエンコーディング
問題1
• “../”を削除するだけでは簡単に攻撃可能
問題2
41
# 入力文字列: .../...//
# 処理: ../ を削除
# 出力結果: ../
セキュリティトークン
• ソースへの書き込みはNG(OSSでは必須)
• CWE-798 SANS/CWE TOP 25 #7
Config/initializers/secret_token.rb
42
TestAPP::Application.config.secret_key_base = ‘0982380234...‘
TestAPP::Application.config.secret_key_base = ENV['SECRET_KEY_BASE']
必ず参照すべき資料
43
Railsセキュリティガイド 44
http://guides.rubyonrails.org/security.html
OWASP TOP 10 45
https://www.owasp.org/index.php/Top_10_2013-Top_10
SANS/CWE TOP 25 46
http://cwe.mitre.org/top25/
Rails/Gemを信頼する?
47
Rails/Gemを
信頼できるか?
•信頼するために検査することも要求
•SANS/CWE TOP 25 - 不正な外部コードの混入も
•Rails4 – 10000コミット以上、500以上のコントリビュータ
ベストプラクティス「信頼できるフレームワーク・ライブラリ」利用
•Rails3までのバリデーション機構はベストプラクティスとはいえない
•Mass Assingnment問題はPHPのregister_globals問題と同じ問題
•SANS/CWE TOP 25に記載されている脆弱性も考慮されていないことも
•セッション固定化の緩和策はとられていない(単独であれば小リスク)
•Ruby 2.1でscrub導入(不正文字エンコーディング対策)
著名な開発者でもセキュリティスペシャリストとは限らない
•セキュリティ専門家と呼ばれる人達の間でも「正しい対策」について意見
が分かれる
•例:文字エンコーディングバリデーション、セッション固定化対策
誤解や混乱
48
action_view¥helpers¥tag_
helper.rb
 TagHelperに利用されるタグ属性処理
49
def tag_option(key, value, escape)
value = value.join(" ") if value.is_a?(Array)
value = ERB::Util.h(value) if escape
%(#{key}="#{value}")
end
デフォルト有効valueのみエスケープ
keyは通常シンボルなので「普通」は大丈夫?
上級レベル開発者に必須
 セキュリティ対策を行うには出力先の「入力仕様」を正しく知る
 「入力仕様」を知るには「エスケープ処理」を知る
 「ヘルパー」の実装が正しいか、使い方が正しいか判断可能
 「バリデーション」の実装が正しいか判断可能
50
•SANS/CWE TOP25 Monster Mitigation #2
•エスケープ → ヘルパー → バリデーション
出力コントロール
セキュリティ
対策として順番
ヘルパー エスケープ
バリデー
ション
実務の順番
フレームワーク・ライブラリ
との付き合い方
•APIに制限があることは当たり前
•ベストプラクティスであるとは限らない
妄信しない
•APIを使う前に、さっと確認する
コードを確認する
•危ない入力でどんな結果になるのか確認する
結果を確認する
51
正しいエスケープの方法を
知らないと判断できない
正しいエスケープ結果を
知らないと判断できない
ご清聴ありがとうございました。
WEBアプリのセキュリティのお問い合わせはINFO@ES-I.JPへ
52

Mais conteúdo relacionado

Destaque

introduction to jsrsasign
introduction to jsrsasignintroduction to jsrsasign
introduction to jsrsasignKenji Urushima
 
継続的セキュリティテストVaddy説明資料
継続的セキュリティテストVaddy説明資料継続的セキュリティテストVaddy説明資料
継続的セキュリティテストVaddy説明資料ichikaway
 
ビットコインと社会 ─ ビットコインだけでは何も変わらない
ビットコインと社会 ─ ビットコインだけでは何も変わらないビットコインと社会 ─ ビットコインだけでは何も変わらない
ビットコインと社会 ─ ビットコインだけでは何も変わらないKenji Saito
 
脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料脆弱性診断研究会
 
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorbRuby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorbKoichiro Sumi
 
OpenWhisk Serverless への期待
OpenWhisk Serverless への期待OpenWhisk Serverless への期待
OpenWhisk Serverless への期待Hideaki Tokida
 
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試みセキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試みHiroshi Tokumaru
 
qpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLS
qpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLSqpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLS
qpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLSKenji Urushima
 
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)Kengo Suzuki
 
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論Kenji Urushima
 
ブロックチェーン連続講義 第4回 暗号技術のリテラシー
ブロックチェーン連続講義 第4回 暗号技術のリテラシーブロックチェーン連続講義 第4回 暗号技術のリテラシー
ブロックチェーン連続講義 第4回 暗号技術のリテラシーKenji Saito
 
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみたzaki4649
 
FinTech と分散システム 〜またの名を仮面ライダーフィンテック〜
FinTech と分散システム 〜またの名を仮面ライダーフィンテック〜FinTech と分散システム 〜またの名を仮面ライダーフィンテック〜
FinTech と分散システム 〜またの名を仮面ライダーフィンテック〜Kenji Saito
 
ブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクトブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクトKenji Saito
 
Customizing Theme and Style for Material Design : Droid Kaigi 2016
Customizing Theme and Style for Material Design : Droid Kaigi 2016Customizing Theme and Style for Material Design : Droid Kaigi 2016
Customizing Theme and Style for Material Design : Droid Kaigi 2016Yuki Anzai
 
Bitcoinを技術的に理解する
Bitcoinを技術的に理解するBitcoinを技術的に理解する
Bitcoinを技術的に理解するKenji Urushima
 
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)Kazuki Yoshida
 
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようMasataka Kono
 

Destaque (19)

introduction to jsrsasign
introduction to jsrsasignintroduction to jsrsasign
introduction to jsrsasign
 
継続的セキュリティテストVaddy説明資料
継続的セキュリティテストVaddy説明資料継続的セキュリティテストVaddy説明資料
継続的セキュリティテストVaddy説明資料
 
ビットコインと社会 ─ ビットコインだけでは何も変わらない
ビットコインと社会 ─ ビットコインだけでは何も変わらないビットコインと社会 ─ ビットコインだけでは何も変わらない
ビットコインと社会 ─ ビットコインだけでは何も変わらない
 
脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料脆弱性診断研究会 第34回セミナー資料
脆弱性診断研究会 第34回セミナー資料
 
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorbRuby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
Ruby用の静的コード解析ツールざくっと紹介 by SideCI #omotesandorb
 
OpenWhisk Serverless への期待
OpenWhisk Serverless への期待OpenWhisk Serverless への期待
OpenWhisk Serverless への期待
 
セキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試みセキュアコーディング方法論再構築の試み
セキュアコーディング方法論再構築の試み
 
qpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLS
qpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLSqpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLS
qpstudy 2015.11.14 一歩先を行くインフラエンジニアに知ってほしいSSL/TLS
 
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
 
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
Certificate TransparencyによるSSLサーバー証明書公開監査情報とその課題の議論
 
ブロックチェーン連続講義 第4回 暗号技術のリテラシー
ブロックチェーン連続講義 第4回 暗号技術のリテラシーブロックチェーン連続講義 第4回 暗号技術のリテラシー
ブロックチェーン連続講義 第4回 暗号技術のリテラシー
 
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
 
FinTech と分散システム 〜またの名を仮面ライダーフィンテック〜
FinTech と分散システム 〜またの名を仮面ライダーフィンテック〜FinTech と分散システム 〜またの名を仮面ライダーフィンテック〜
FinTech と分散システム 〜またの名を仮面ライダーフィンテック〜
 
ブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクトブロックチェーン連続講義 第7回 スマートコントラクト
ブロックチェーン連続講義 第7回 スマートコントラクト
 
Customizing Theme and Style for Material Design : Droid Kaigi 2016
Customizing Theme and Style for Material Design : Droid Kaigi 2016Customizing Theme and Style for Material Design : Droid Kaigi 2016
Customizing Theme and Style for Material Design : Droid Kaigi 2016
 
Bitcoinを技術的に理解する
Bitcoinを技術的に理解するBitcoinを技術的に理解する
Bitcoinを技術的に理解する
 
AndroidLint #DroidKaigi
AndroidLint #DroidKaigiAndroidLint #DroidKaigi
AndroidLint #DroidKaigi
 
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
 
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみようライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
 

Semelhante a Rails4 security

今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4アシアル株式会社
 
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウSwtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウSFDG ROOKIES
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -Yuji Takayama
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4leverages_event
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24Kazuhiro Sera
 
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api   cms どうでしょう - 大阪夏の陣初めての Data api   cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣Yuji Takayama
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011Hiroh Satoh
 
Laravel5を使って開発してみた
Laravel5を使って開発してみたLaravel5を使って開発してみた
Laravel5を使って開発してみたTakeo Noda
 
これからHTML5を書く人のためのセキュリティ - HTML5など勉強会
これからHTML5を書く人のためのセキュリティ - HTML5など勉強会これからHTML5を書く人のためのセキュリティ - HTML5など勉強会
これからHTML5を書く人のためのセキュリティ - HTML5など勉強会yoshinori matsumoto
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Yuji Takayama
 
Web担当者が知っておくべきPHPとセキュリティ
Web担当者が知っておくべきPHPとセキュリティWeb担当者が知っておくべきPHPとセキュリティ
Web担当者が知っておくべきPHPとセキュリティYasuo Ohgaki
 
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー<第1回>Laravelハンズオンセミナー
<第1回>LaravelハンズオンセミナーTatsuyoshi Mashiko
 
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1Fumito Mizuno
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid SystemKeiji Ariyama
 
Rails and twitter #twtr_hack
Rails and twitter #twtr_hackRails and twitter #twtr_hack
Rails and twitter #twtr_hacki7a
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能kimulla
 
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerHideo Kashioka
 
Getting Started with Ruby on Rails4 + Twitter Bootstrap3
Getting Started with Ruby on Rails4 + Twitter Bootstrap3Getting Started with Ruby on Rails4 + Twitter Bootstrap3
Getting Started with Ruby on Rails4 + Twitter Bootstrap3Yukimitsu Izawa
 

Semelhante a Rails4 security (20)

今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
 
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウSwtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
Swtt2018 sfdgr2 Developer Group ルーキー会が教える!次の一歩のための開発ノウハウ
 
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API   CMS どうでしょう - 仙台編 -初めての Data API   CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
 
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
[Japanese] Skinny Framework で始める Scala #jjug_ccc #ccc_r24
 
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api   cms どうでしょう - 大阪夏の陣初めての Data api   cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
Laravel5を使って開発してみた
Laravel5を使って開発してみたLaravel5を使って開発してみた
Laravel5を使って開発してみた
 
Silex入門
Silex入門Silex入門
Silex入門
 
これからHTML5を書く人のためのセキュリティ - HTML5など勉強会
これからHTML5を書く人のためのセキュリティ - HTML5など勉強会これからHTML5を書く人のためのセキュリティ - HTML5など勉強会
これからHTML5を書く人のためのセキュリティ - HTML5など勉強会
 
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
 
Web担当者が知っておくべきPHPとセキュリティ
Web担当者が知っておくべきPHPとセキュリティWeb担当者が知っておくべきPHPとセキュリティ
Web担当者が知っておくべきPHPとセキュリティ
 
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
 
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid System
 
Rails and twitter #twtr_hack
Rails and twitter #twtr_hackRails and twitter #twtr_hack
Rails and twitter #twtr_hack
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginer
 
Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門Ruby開発者のためのHeroku入門
Ruby開発者のためのHeroku入門
 
Getting Started with Ruby on Rails4 + Twitter Bootstrap3
Getting Started with Ruby on Rails4 + Twitter Bootstrap3Getting Started with Ruby on Rails4 + Twitter Bootstrap3
Getting Started with Ruby on Rails4 + Twitter Bootstrap3
 

Mais de Yasuo Ohgaki

忘れられているデータセキュリティ
忘れられているデータセキュリティ忘れられているデータセキュリティ
忘れられているデータセキュリティYasuo Ohgaki
 
ネットワークから学ぶソフトウェアセキュリティの基礎
ネットワークから学ぶソフトウェアセキュリティの基礎ネットワークから学ぶソフトウェアセキュリティの基礎
ネットワークから学ぶソフトウェアセキュリティの基礎Yasuo Ohgaki
 
5分で解るセキュアコーディング
5分で解るセキュアコーディング5分で解るセキュアコーディング
5分で解るセキュアコーディングYasuo Ohgaki
 
アプリ開発者に大きな影響 2017年版OWASP TOP 10
アプリ開発者に大きな影響 2017年版OWASP TOP 10 アプリ開発者に大きな影響 2017年版OWASP TOP 10
アプリ開発者に大きな影響 2017年版OWASP TOP 10 Yasuo Ohgaki
 
SQLインジェクション総”習”編
SQLインジェクション総”習”編SQLインジェクション総”習”編
SQLインジェクション総”習”編Yasuo Ohgaki
 
PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行Yasuo Ohgaki
 
ソースコード検査に耐えるコードとは?
ソースコード検査に耐えるコードとは?ソースコード検査に耐えるコードとは?
ソースコード検査に耐えるコードとは?Yasuo Ohgaki
 
経営者・マネージャーが知るべき情報セキュリティ
経営者・マネージャーが知るべき情報セキュリティ経営者・マネージャーが知るべき情報セキュリティ
経営者・マネージャーが知るべき情報セキュリティYasuo Ohgaki
 
セキュアなソフトウェアアーキテクチャー
セキュアなソフトウェアアーキテクチャーセキュアなソフトウェアアーキテクチャー
セキュアなソフトウェアアーキテクチャーYasuo Ohgaki
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能Yasuo Ohgaki
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能Yasuo Ohgaki
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能Yasuo Ohgaki
 
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料Yasuo Ohgaki
 
データベースセキュリティ
データベースセキュリティデータベースセキュリティ
データベースセキュリティYasuo Ohgaki
 
Postgre SQL 9.3 新機能
Postgre SQL 9.3 新機能Postgre SQL 9.3 新機能
Postgre SQL 9.3 新機能Yasuo Ohgaki
 

Mais de Yasuo Ohgaki (15)

忘れられているデータセキュリティ
忘れられているデータセキュリティ忘れられているデータセキュリティ
忘れられているデータセキュリティ
 
ネットワークから学ぶソフトウェアセキュリティの基礎
ネットワークから学ぶソフトウェアセキュリティの基礎ネットワークから学ぶソフトウェアセキュリティの基礎
ネットワークから学ぶソフトウェアセキュリティの基礎
 
5分で解るセキュアコーディング
5分で解るセキュアコーディング5分で解るセキュアコーディング
5分で解るセキュアコーディング
 
アプリ開発者に大きな影響 2017年版OWASP TOP 10
アプリ開発者に大きな影響 2017年版OWASP TOP 10 アプリ開発者に大きな影響 2017年版OWASP TOP 10
アプリ開発者に大きな影響 2017年版OWASP TOP 10
 
SQLインジェクション総”習”編
SQLインジェクション総”習”編SQLインジェクション総”習”編
SQLインジェクション総”習”編
 
PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行PHP5.6からPHP7.0への移行
PHP5.6からPHP7.0への移行
 
ソースコード検査に耐えるコードとは?
ソースコード検査に耐えるコードとは?ソースコード検査に耐えるコードとは?
ソースコード検査に耐えるコードとは?
 
経営者・マネージャーが知るべき情報セキュリティ
経営者・マネージャーが知るべき情報セキュリティ経営者・マネージャーが知るべき情報セキュリティ
経営者・マネージャーが知るべき情報セキュリティ
 
セキュアなソフトウェアアーキテクチャー
セキュアなソフトウェアアーキテクチャーセキュアなソフトウェアアーキテクチャー
セキュアなソフトウェアアーキテクチャー
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能
 
PHPにないセキュリティ機能
PHPにないセキュリティ機能PHPにないセキュリティ機能
PHPにないセキュリティ機能
 
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
 
データベースセキュリティ
データベースセキュリティデータベースセキュリティ
データベースセキュリティ
 
Postgre SQL 9.3 新機能
Postgre SQL 9.3 新機能Postgre SQL 9.3 新機能
Postgre SQL 9.3 新機能
 

Rails4 security