[PHP-users 18531]Re: 変数に格納したヒアドキュメント(解

Osamu Shigematsu m5issige @ mr.hitachi-medical.co.jp
2003年 10月 21日 (火) 09:09:30 JST


重松です。こんにちは。

もともとの質問にはそのようなことは書かれていないので、
あくまでも個人的な解釈の域を抜けないと思いますが、

そもそも、質問された方は何をしたかったのか、ということを
私は考えたところ、「何らかの機能を実現する」ということが
根本であり、言語 (道具) として PHP を選択たようで、
その上で、スクリプトと HTML (見た目) を分離するために、
テンプレートモドキとしてヒアドキュメントを使いたい (方法) わけです。

とりあえず、ヒアドキュメントではできないわけだから、
無理に eval (とか include) でやる理由 (必然性) が、
もともとの質問者から示されてないのに、そっちに突き進むより、
もう一段上の「目ためを分離する方法」について、議論したほうが、
実りが多かったように思います。

で、eval についてですが、問題は、

> したがって、重松さんや冨田さんのご指摘にあるような、
> クロスサイトスクリプティング等の攻撃を受ける危険性とは(ほぼ)無縁ですし、
> 加えて、評価対象となるテキストファイルは、サーバの設定によって外部からのアクセスを拒否するなり、
> そもそも DocumentRoot の外に出すなりして、変数自体も晒さない、といった防御は施しています。

ということを誰でもできるか、ということです。
つまり、上記のような対策をきちんとできる (する必要があると気づく)
かもしれませんが、そうでないかもしれません。

何でもできるということは、意図しない動作が行われないように留意して
コードを書かないといけない、ということなので、ならば、
最初からそれしかできない方法を使うほうが、楽だと思います。


以上のような観点から、

「スクリプトと HTML (見た目) を分離する方法」

の質問と捕らえ、結果、

「既存のテンプレートを評価してみて、最適なものを探してはどうか」

という解決策を提案するのが良いのでは、と思ったわけです。

-- 
Osamu Shigematsu <m5issige @ mr.hitachi-medical.co.jp>



PHP-users メーリングリストの案内