SlideShare a Scribd company logo
1 of 11
Download to read offline
フロントコントローラを実装して
簡易CMSを作る
三浦 恒樹 (MIURA KOUKI)
診療情報管理士
上級医療情報技師
医用画像情報専門技師
ドゥウェル株式会社
2024.02.03
第2回 札幌 PHP 勉強会
フロントコントローラ…なぜ実装するのか
・フルスタックフレームワーク → 高機能すぎる。
・軽量フレームワーク → まだ高機能。
・フロントコントローラのみ実装 → ちょうど良い!
Laravel, CakePHP等
Slim等
WEBサーバ - フロントコントローラの設定
すべての.phpファイル
への直接アクセスを禁止
コンテキストルート(cms)配下へのアクセス
1. 実ファイルがあれば返却($uri)
2. 無ければ@app(アプリ)にルーティング
すべてのリクエストを/cms/index.php
に集約(フロントコントローラ)
フロントコントローラでやること
1. 設定ファイル読み込み
2. URL解析
3. アクセス制御
4. コンテンツ読み込み
1.設定ファイル読み込み
2.URL解析
3.アクセス制御
4.コンテンツ読み込み
セキュリティの考慮
https://www.ipa.go.jp/security/vuln/websecurity/about.html
1. 設定ファイル読み込み
2. URL解析
・階層構造を抽出
・クエリパラメータを抽出
3. アクセス制御 ・IPアドレスでのアクセス制御
・認証・認可でのアクセス制御
4. コンテンツ読み込み
4. コンテンツ読み込み
SUMMARY
・フロントコントローラを実装して簡易CMSを作った
・セキュリティには注意が必要
・PHP=そのまま設定ファイル・テンプレートエンジン
・今後やりたいこと
Security, Log, Database, AdminUI, DesignTemplates
ご清聴ありがとうございました。

More Related Content

Similar to 20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る_公開用.pdf

Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Uemura Yuichi
 
Apache Mesosってなに
Apache MesosってなにApache Mesosってなに
Apache MesosってなにShingo Kitayama
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterMasanori Oobayashi
 
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術Kei IWASAKI
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web ServiceShinji Tanaka
 
5分でわかるphalcon php
5分でわかるphalcon php5分でわかるphalcon php
5分でわかるphalcon phpYusaku Kinoshita
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHPShohei Tai
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用についてYuuki Namikawa
 
Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
 Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management... Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...SolarisJP
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムSatoshi Iijima
 
経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005Makoto Shimizu
 
サイト移行4つの方法
サイト移行4つの方法サイト移行4つの方法
サイト移行4つの方法FatWireKK
 
20140919 enterprise oss my sql study v5.tware-bacula intro
20140919 enterprise oss my sql study   v5.tware-bacula intro20140919 enterprise oss my sql study   v5.tware-bacula intro
20140919 enterprise oss my sql study v5.tware-bacula introIzumi Akiyama
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそHiromu Shioya
 
キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐Kei Nakazawa
 
PHPデプロイツールの世界
PHPデプロイツールの世界PHPデプロイツールの世界
PHPデプロイツールの世界Yuuki Takezawa
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)Akio Katayama
 

Similar to 20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る_公開用.pdf (20)

Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
Apache Mesosってなに
Apache MesosってなにApache Mesosってなに
Apache Mesosってなに
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術3分でサーバオペレーションコマンドを作る技術
3分でサーバオペレーションコマンドを作る技術
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
 
5分でわかるphalcon php
5分でわかるphalcon php5分でわかるphalcon php
5分でわかるphalcon php
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHP
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
Railsの運用について
Railsの運用についてRailsの運用について
Railsの運用について
 
BEAR.Sunday 1.X
BEAR.Sunday 1.XBEAR.Sunday 1.X
BEAR.Sunday 1.X
 
Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
 Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management... Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
Solaris ディープダイブセミナー #4: A-2-1 サービス実行を超えた 新たなサービス管理アーキテクチャ Service Management...
 
Cakephp
CakephpCakephp
Cakephp
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システム
 
経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005経営を支えるIT部門実現の記録2005
経営を支えるIT部門実現の記録2005
 
サイト移行4つの方法
サイト移行4つの方法サイト移行4つの方法
サイト移行4つの方法
 
20140919 enterprise oss my sql study v5.tware-bacula intro
20140919 enterprise oss my sql study   v5.tware-bacula intro20140919 enterprise oss my sql study   v5.tware-bacula intro
20140919 enterprise oss my sql study v5.tware-bacula intro
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
 
キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐キャバァーン! サツバツエアアイオー弐〇壱弐
キャバァーン! サツバツエアアイオー弐〇壱弐
 
PHPデプロイツールの世界
PHPデプロイツールの世界PHPデプロイツールの世界
PHPデプロイツールの世界
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
 

20240203_札幌PHP勉強会_フロントコントローラを実装して簡易CMSを作る_公開用.pdf