SlideShare a Scribd company logo
1 of 46
フレームワークに頼らない
Webプログラミング
会社概要
社名 株式会社デジタルヒュージテクノロジー
本社所在地 東京都千代田区岩本町1-4-4
設立 1998年8月12日
資本金 1000万円
代表者 鵜川 徹
会社概要
「クラウドから携帯端末まで・・・」を
合い言葉にクラウド構築からAndroid iOSまでの
開発を行っている会社です。
教育に関してもLPI-Japan
HTML5アカデミック認定校 となっています。
自己紹介
川井田 新介
1992年3月11日生まれ(26)
自己紹介
・元農家(サツマイモの苗を増やす人)
ウイルスに強い苗を作ってました!
・2017年12月期生としてDIVE INTO CODEに入校。
6月に卒業
・2018年2月からスクールに通いながら、DHTで
アルバイトを始め、7月より正社員として入社
自己紹介
DIVE INTO CODE主催
DEMODAY 5th - 2018 - autumn 10月7日(日) 出場予定
自己紹介
買ってよかったものを共有するサービス
フレームワークとは?
フレームワークは特定のプログラミング言語で書かれた、そのまま利用できる
ソフトウェアの主要部分の雛形(テンプレート)と、汎用的で再利用可能なクラ
スやライブラリ、モジュール、APIなどで構成され、また、開発者がコードを
記述して機能を追加、拡張するための方法や規約などが定められている。
引用元:IT用語辞典 e-Words
皆さんフレームワークを
触ったことはありますか?
代表的なフレームワーク
Ruby
・Ruby on Rails
PHP
・CakePHP
・Laravel
JavaScript
・Angular JS
・Vue.js
CSS
・bootstrap
私はDICに入校してRailsを触り、
DHTに入社して生のPHPを触り、
最近はcakePHPを触ったりしています。
フレームワークの良いところ
・開発がはやい!
・コードの書き方をある程度統一できる!
・内部処理を意識しなくてもそれなりのものができ
る!
フレームワークの不便なところ
・思想に慣れる必要がある。(CoC等)
・内部処理よくわかんない。
・カスタマイズしにくい
(例)railsの思想
設定より規約(Convention over Configuration)
Don't Repeat Yourself (DRY)
(例)railsでのblog作成
$ rails new blog
$ cd blog
$ rails g scaffold Post title:string content:string
$ rails db:migrate
(例)railsでのblog作成
(例)railsでのblog作成
CRUDがすぐ作れる。
(例)railsでのblog作成
仕組みがわかるはずがない!!
!
Rubyでブログ作成を考えてみる
セキュリティ
?
ERBで出力す
る? データベ
ース?
Rubyの実行環境を考える
サーバ
ー?
CGI?
セキュリティ
?
ERBで出力す
る? データベ
ース?
Rubyの実行環境を考える
サーバ
ー?
CGI?
Railsのサーバー
• 標準だとWEBrick
• Puma
• Nginxで動かすならUnicorn
• Apacheで動かすならPassenger
仕組みを覚えたいならWEBrick
Rubyの標準ライブラリなのでリファレンスもあり、
参考ページもすぐ見つかる。
webribkライブラリ
https://docs.ruby-lang.org/ja/latest/library/webrick.html
1分でHTTPサーバーを構築する
http://www.programing-style.com/ruby/webrick-server-start-1minute/
Webサーバー、
アプリケーションサーバー
などインフラ層の
挙動がわかる。
ERBで出力す
る? データベ
ース?
Rubyの実行環境を考える
サーバ
ー?
CGI?
セキュリティ
?
セキュリティ
• セッションハイジャック対策
• SQLインジェクション対策
セッションとは、ステートレスの
HTTPをステートフルに変えるもの。
セッションハイジャック
他人のcookieを奪い取ることが
できれば、そのユーザーの権限で
Webアプリを使うことができてしまい、
セッションハイジャック
セキュリティに不備のあるネットワークでは
cookieを覗き見することができてしまう。
セッションハイジャック
Railsでの対策
config.force_ssl = true
セッションハイジャック
Rubyでの対策
scheme = (!ENV[‘HTTPS’].nil? || ENV[‘HTTPS’] != ‘on’)? ‘http’ :
‘https’
http_url = scheme + ‘://‘ + ENV[‘HTTP_HOST’] + ‘:’ +
ENV[‘SERVER_PORT’] + ENV[‘REQUEST_URI’]
セッションハイジャック
アプリケーションが想定しないSQL文を実行させることで、
データベースシステムに意図しない動作をさせる攻撃方法
。
SQLインジェクション
SQLログイン(例)
SELECT uid FROM account_table WHERE uid = ‘ユーザーID’
AND pw = ‘パスワード’;
SQLインジェクション
攻撃
SELECT uid FROM account_table WHERE uid = ‘’
OR 1 = 1- -‘ AND pw=‘任意の文字列’;
SQLインジェクション
パスワードもユーザーIDもわからなくても
ログインできてしまう。
SQLインジェクション
Railsでの対策
SQLインジェクション
Model.find(id)やModel.find_byほげ
SQLインジェクション
「’」「”」「NULL」「改行」
が
エスケープされる
SQLインジェクション
ただし
SQLインジェクション
Model.where(hoge)や
connection.execute()、
Model.find_by_sql()メソッドは手動でエ
スケープする必要がある。
SQLインジェクション
Model.where("login = ? AND password = ?”,
entered_user_name,entered_password).first
SQLインジェクション
?にentered_user_name、
entered_passwordに入力された値が適切にク
ウォートされる。
SQLインジェクション
生の言語を触って
SQL サーバー
セキュリテ
ィ
標準
ライブラリ
HTTP
リクエスト
セッション
生の言語の良いところ
・軽い
・コードの視認性が高い
・Webの仕組みを知れる
考えたぶん仕組みがわかる。

More Related Content

Similar to フレームワークに頼らないweb開発

0525株式会社デジタルシフトケイパ.pdf
0525株式会社デジタルシフトケイパ.pdf0525株式会社デジタルシフトケイパ.pdf
0525株式会社デジタルシフトケイパ.pdfssuser023d4d1
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術Tomoki Hasegawa
 
Dec cafe 20201105_vfin
Dec cafe 20201105_vfinDec cafe 20201105_vfin
Dec cafe 20201105_vfinDaichi Fujii
 
0からのWebディレクション for Students 3月講義 WBS編
0からのWebディレクション for Students 3月講義 WBS編0からのWebディレクション for Students 3月講義 WBS編
0からのWebディレクション for Students 3月講義 WBS編Takehiko Goshi
 
0 d4s 20140323_共有用
0 d4s 20140323_共有用0 d4s 20140323_共有用
0 d4s 20140323_共有用Takehiko Goshi
 
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由Yuji Otani
 
新しい働き方アワード【新しい働き方LAB empowered by ランサーズ/研究員制度3期】
新しい働き方アワード【新しい働き方LAB empowered by ランサーズ/研究員制度3期】新しい働き方アワード【新しい働き方LAB empowered by ランサーズ/研究員制度3期】
新しい働き方アワード【新しい働き方LAB empowered by ランサーズ/研究員制度3期】muratananae
 

入社4ヶ月 新入りPdMの取り組み

入社4ヶ月 新入りPdMの取り組み
入社4ヶ月 新入りPdMの取り組み

入社4ヶ月 新入りPdMの取り組みTsuyoshi Nagahashi
 
投稿監視サービスのご紹介資料-アディッシュ株式会社
投稿監視サービスのご紹介資料-アディッシュ株式会社投稿監視サービスのご紹介資料-アディッシュ株式会社
投稿監視サービスのご紹介資料-アディッシュ株式会社アディッシュ株式会社
 
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —Open Source Software Association of Japan
 
ソーシャルリスニングサービスご紹介資料-アディッシュ株式会社
ソーシャルリスニングサービスご紹介資料-アディッシュ株式会社ソーシャルリスニングサービスご紹介資料-アディッシュ株式会社
ソーシャルリスニングサービスご紹介資料-アディッシュ株式会社アディッシュ株式会社
 
クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介masaoki_ohashi
 
HoGo サービスと会社紹介
HoGo サービスと会社紹介HoGo サービスと会社紹介
HoGo サービスと会社紹介iDOC KK
 
本番稼働した IoT システムのツラミ
本番稼働した IoT システムのツラミ本番稼働した IoT システムのツラミ
本番稼働した IoT システムのツラミTomoyuki Sugita
 
アノテーション代行サービスご紹介資料-アディッシュ株式会社
アノテーション代行サービスご紹介資料-アディッシュ株式会社アノテーション代行サービスご紹介資料-アディッシュ株式会社
アノテーション代行サービスご紹介資料-アディッシュ株式会社アディッシュ株式会社
 
不正決済対策サービス-アディッシュ株式会社
不正決済対策サービス-アディッシュ株式会社不正決済対策サービス-アディッシュ株式会社
不正決済対策サービス-アディッシュ株式会社アディッシュ株式会社
 

Similar to フレームワークに頼らないweb開発 (20)

0525株式会社デジタルシフトケイパ.pdf
0525株式会社デジタルシフトケイパ.pdf0525株式会社デジタルシフトケイパ.pdf
0525株式会社デジタルシフトケイパ.pdf
 
iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術iOSアプリ制作ツールアプリビルダーを支える技術
iOSアプリ制作ツールアプリビルダーを支える技術
 
Dec cafe 20201105_vfin
Dec cafe 20201105_vfinDec cafe 20201105_vfin
Dec cafe 20201105_vfin
 
0からのWebディレクション for Students 3月講義 WBS編
0からのWebディレクション for Students 3月講義 WBS編0からのWebディレクション for Students 3月講義 WBS編
0からのWebディレクション for Students 3月講義 WBS編
 
0 d4s 20140323_共有用
0 d4s 20140323_共有用0 d4s 20140323_共有用
0 d4s 20140323_共有用
 
Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由Hack/HHVMの最新事情とメイン言語に採用した理由
Hack/HHVMの最新事情とメイン言語に採用した理由
 
新しい働き方アワード【新しい働き方LAB empowered by ランサーズ/研究員制度3期】
新しい働き方アワード【新しい働き方LAB empowered by ランサーズ/研究員制度3期】新しい働き方アワード【新しい働き方LAB empowered by ランサーズ/研究員制度3期】
新しい働き方アワード【新しい働き方LAB empowered by ランサーズ/研究員制度3期】
 

入社4ヶ月 新入りPdMの取り組み

入社4ヶ月 新入りPdMの取り組み
入社4ヶ月 新入りPdMの取り組み

入社4ヶ月 新入りPdMの取り組み
 
20140307 tech nightvol11_lt_v1.0_public
20140307 tech nightvol11_lt_v1.0_public20140307 tech nightvol11_lt_v1.0_public
20140307 tech nightvol11_lt_v1.0_public
 
IotLt vol4_r2
IotLt vol4_r2IotLt vol4_r2
IotLt vol4_r2
 
SIerのDevRel術
SIerのDevRel術SIerのDevRel術
SIerのDevRel術
 
投稿監視サービスのご紹介資料-アディッシュ株式会社
投稿監視サービスのご紹介資料-アディッシュ株式会社投稿監視サービスのご紹介資料-アディッシュ株式会社
投稿監視サービスのご紹介資料-アディッシュ株式会社
 
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
オープンソースがエンドユーザーイニシアティブをもたらす!? — 「シラサギ」使ったらこんなこともあんなことも —
 
ソーシャルリスニングサービスご紹介資料-アディッシュ株式会社
ソーシャルリスニングサービスご紹介資料-アディッシュ株式会社ソーシャルリスニングサービスご紹介資料-アディッシュ株式会社
ソーシャルリスニングサービスご紹介資料-アディッシュ株式会社
 
クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介
 
HoGo サービスと会社紹介
HoGo サービスと会社紹介HoGo サービスと会社紹介
HoGo サービスと会社紹介
 
Froidaleweb
FroidalewebFroidaleweb
Froidaleweb
 
本番稼働した IoT システムのツラミ
本番稼働した IoT システムのツラミ本番稼働した IoT システムのツラミ
本番稼働した IoT システムのツラミ
 
アノテーション代行サービスご紹介資料-アディッシュ株式会社
アノテーション代行サービスご紹介資料-アディッシュ株式会社アノテーション代行サービスご紹介資料-アディッシュ株式会社
アノテーション代行サービスご紹介資料-アディッシュ株式会社
 
不正決済対策サービス-アディッシュ株式会社
不正決済対策サービス-アディッシュ株式会社不正決済対策サービス-アディッシュ株式会社
不正決済対策サービス-アディッシュ株式会社
 

フレームワークに頼らないweb開発