自分のための次世代CMS製作メモ
Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
skin.php [General]
2007年12月24日
スキンのパース部分がほぼ出来上がったので、メモ。
スキンの仕様としては、Nucleusのスキンのアッパーコンパチブルにすることをめざす。すなわち、<%skinvar%>の様な記述で書き上げるやり方をとる。
一方で、<?php … ?>のような、PHP直書きの表記も使えるようにする。したがって、スキンに特別な機能を入れたい場合に、PHPでガリガリ書くことも可能。
もう一つの特徴は…。これはもし完成した場合にJeans CMS の大きな特徴になると思うのだけれど…。スキンをコンパイルして、PHPファイルに変換できるようにしたい。つまり、コンパイルの結果、コアやプラグインの機能を直接呼び出すようなindex.phpが作成される。これをサーバーにおけば、ZAPAさんの改造のように、100倍とまでは行かないものの、かなりのスピードアップが期待できると思われる。
スキンの仕様としては、Nucleusのスキンのアッパーコンパチブルにすることをめざす。すなわち、<%skinvar%>の様な記述で書き上げるやり方をとる。
一方で、<?php … ?>のような、PHP直書きの表記も使えるようにする。したがって、スキンに特別な機能を入れたい場合に、PHPでガリガリ書くことも可能。
もう一つの特徴は…。これはもし完成した場合にJeans CMS の大きな特徴になると思うのだけれど…。スキンをコンパイルして、PHPファイルに変換できるようにしたい。つまり、コンパイルの結果、コアやプラグインの機能を直接呼び出すようなindex.phpが作成される。これをサーバーにおけば、ZAPAさんの改造のように、100倍とまでは行かないものの、かなりのスピードアップが期待できると思われる。
セキュリティー対策 [Security]
2007年12月24日
とりあえず、3つの対策を用意。
1)リモートコードインサーション対策
2)XSS対策
3)SQLインジェクション対策
何も考えずにコアの機能を利用することで、これらのセキュリティー対策が行えるようなツールを目指す。理想としては、意識せずにコードを書けば脆弱性はでず、何か特別なことを仕様としたときだけに脆弱性が出てしまうようなものにしたい。規約として、echo 命令はライブラリやプラグインでは使用禁止にするつもり。
1)リモートコードインサーション対策
2)XSS対策
3)SQLインジェクション対策
何も考えずにコアの機能を利用することで、これらのセキュリティー対策が行えるようなツールを目指す。理想としては、意識せずにコードを書けば脆弱性はでず、何か特別なことを仕様としたときだけに脆弱性が出てしまうようなものにしたい。規約として、echo 命令はライブラリやプラグインでは使用禁止にするつもり。
特徴 [General]
2007年12月23日
最初の記事でたいそうなことを書いたが、要するに開発するためのメモをするところを準備したというところ。まず、特徴となることをいくつか挙げると
1)言語としては、PHP5を利用。データベースエンジンは、SQLite。
2)ライセンスは、GPL(Nucleus のコードを幾分か移植して使うため)。
3)軽さを追求したツールにする。
4)グローバル変数とグローバル関数は利用しない。代わりに、定数もしくはクラスのスタティックプロパティとクラスのスタティックメソッドを用いる。
5)SQLインジェクション、XSS、リモートコードインサーションなどの脆弱性が出にくくなるような仕組みを、コア側で用意する。
6)スキンはデータベースに保存せず、ファイルとして保存する。
7)Nucleusのテンプレートの概念は使わず、かわりにスキンを多層化する。
8)管理画面もスキンで記述し、自由にカスタマイズできるようにする。
1)言語としては、PHP5を利用。データベースエンジンは、SQLite。
2)ライセンスは、GPL(Nucleus のコードを幾分か移植して使うため)。
3)軽さを追求したツールにする。
4)グローバル変数とグローバル関数は利用しない。代わりに、定数もしくはクラスのスタティックプロパティとクラスのスタティックメソッドを用いる。
5)SQLインジェクション、XSS、リモートコードインサーションなどの脆弱性が出にくくなるような仕組みを、コア側で用意する。
6)スキンはデータベースに保存せず、ファイルとして保存する。
7)Nucleusのテンプレートの概念は使わず、かわりにスキンを多層化する。
8)管理画面もスキンで記述し、自由にカスタマイズできるようにする。
Jeans CMS製作開始 [General]
2007年12月23日
自分流のCMSを、ほぼスクラッチの状態から製作することにした。Nucleusに似たものになると思うけれど、Nucleusの良いと思うところは残し、そうではないところに改良を加えたものにしてみたいと思う。
このツールの名前であるが、Nucleusの考え方を受け継ぐようなものにした。お手本にするツールであるNucleusは、『核』という意味であるが、文字通りブログツールやCMSとしての核の部分だけを提供し、その他の多くの機能をプラグインで補おうという考え方である。ここで開発するツールは、核(細胞核)をさらに分解し、遺伝子のレベルまで細かくして扱っていこうという考え方を取りたい。コアに含まれる複数のクラスを遺伝子としてとらえるので、Genes。同じ発音でつづりを変えて、Jeansと命名した。
このツールの名前であるが、Nucleusの考え方を受け継ぐようなものにした。お手本にするツールであるNucleusは、『核』という意味であるが、文字通りブログツールやCMSとしての核の部分だけを提供し、その他の多くの機能をプラグインで補おうという考え方である。ここで開発するツールは、核(細胞核)をさらに分解し、遺伝子のレベルまで細かくして扱っていこうという考え方を取りたい。コアに含まれる複数のクラスを遺伝子としてとらえるので、Genes。同じ発音でつづりを変えて、Jeansと命名した。