コンセプト

「セキュリティ対策について詳しくない初心者が
 PHP で危険な Web アプリケーションを作って困る」
と、よく言われます。
たしかに、PHP を使えば
初心者でも比較的簡単に Web アプリケーションを作ることができます。
そのため、中には、セキュリティ対策について十分に理解する前に
Web アプリケーションを作ってしまうケースも多く見られます。

「自分の作った Web アプリケーションが
 攻撃されることなんてまずないだろうし、だったら、
 セキュリティ対策について勉強する手間と時間で他のことをしたい」
というのが、多くの初心者たちの本音ではないでしょうか。
あるいは、もっと単純に
「セキュリティ対策って、なんとなく難しくて面倒くさそう」
というイメージから、学習する意欲を持てずにいる人もいるでしょう。

そうした人たちを「自覚がない!」と責めるのは簡単ですが、
責めることでどれほどの効果があるかは疑問です。
もし、責めらることで初心者の方たちが委縮してしまい、
Web アプリケーションを作ること自体をやめてしまっては意味がありません。

だからといって、危険な Web アプリケーションが作られる状況を
放置して良いことには、もちろんなりません。
では、どうすればいいのか――

「セキュリティ対策は難しくて面倒だから」と敬遠する人が多いなら、
簡単にすればいいのです。
誰でも簡単にセキュリティ対策が施せるツールがあれば
初心者でも安全な Web アプリケーションを作ることができます。

「初心者を責めるより、初心者の助けになるものを」
Rampart は、そうした思いで設計しました。
それゆえ、ランパートの基本コンセプトとして、

  1. 初心者にも簡単に使える。
  2. Rampart を基本通りに使えば、
    何も考えなくてもセキュリティ対策が施される。

ことを重視した設計となっています。

「PHP は危険な Web アプリケーションの温床だ」と言われがちですが、
Rampart がそうした評判の改善に少しでも役に立てば、
いち PHP ユーザーとしてこんなに嬉しいことはありません。

テンプレートエンジンとしての Rampart

Rampart はテンプレートエンジンとして機能します。

テンプレートエンジンとは、簡単に言うと、
デザイン(HTML ファイル)とロジック(プログラムファイル)とを分離する技術です。

PHP は HTML ファイルの中に直接プログラム(ロジック)を埋め込むことができますが、
そうするうちに、「あのプログラムはどこに記述したっけ?」とか、
「デザインを変更したいんだけど、プログラムに影響が出ないか不安」など、
全体を把握しづらく、メンテナンスが大変になっていきます。

また、デザインはデザイナーが、ロジックはプログラマーが
それぞれ別々に作業する状況を考えれば、
デザインとロジックが明確に分離されているほうが作業が容易になります。

純粋にテンプレートエンジンとしての機能で見ると
Rampart は(今のところ)必要最小限の機能しかありません。
他の高機能なテンプレートエンジンと比べて不便に思われるかも知れませんが、
その代りに、覚えることも最小限で済みます。

高機能にすることでテンプレートエンジンとしての仕様が複雑になり、
「習得に時間がかかる」
「HTML ファイルにロジックを記述することになる」
「デザイナーが扱えない」
「結局、基本機能しか使わない」
となってしまっては、使い勝手がいいとも言えません。

「テンプレートエンジンはシンプルに留め、複雑な処理はプログラムで対応する」
というのが、テンプレートエンジンとしての Rampart のコンセプトです。