<?xml version="1.0" encoding="utf-8"?><!-- generator="b2evolution/3.3.1" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>yohgaki's blog - LAMPのPをPHPからPerl/Python/Rubyに替えるだけではセキュリティは向上しない証拠 の最近のコメント</title>
		<link>http://blog.ohgaki.net/?disp=comments</link>
		<atom:link rel="self" type="application/rss+xml" href="http://blog.ohgaki.net/?tempskin=_rss2&#38;disp=comments&#38;p=974" />
		<description></description>
		<language>ja-JP</language>
		<docs>http://backend.userland.com/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=3.3.1"/>
		<ttl>60</ttl>
				<item>
			<title>Yasuo Ohgaki [メンバー] in response to: LAMPのPをPHPからPerl/Python/Rubyに替えるだけではセキュリティは向上しない証拠</title>
			<pubDate>Thu, 20 Mar 2008 19:19:04 +0000</pubDate>
			<dc:creator>Yasuo Ohgaki [メンバー]</dc:creator>
			<guid isPermaLink="false">c15146@http://blog.ohgaki.net/</guid>
			<description>&lt;p&gt;言語を替えると安全になる、という議論はあまりに短絡的です。具体的に議論しないと意味がありません。&lt;/p&gt;
&lt;p&gt;
PHPは仕様的に脆弱になる部分があります。仕様が原因で脆弱になる例&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;- 組み込み型の言語仕様&lt;/li&gt;
  &lt;li&gt;
- リモートファイルインクルード（デフォルト無効）&lt;/li&gt;
  &lt;li&gt;
- 未初期化セッションIDの受け入れ&lt;/li&gt;
  &lt;li&gt;
- 透過的セッション管理（デフォルト無効）&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;などです。中でも組み込み型の言語仕様はローカルファイル読み込みに脆弱なアプリケーションでは致命的な問題です。PHP以外の言語でも、例えば、画像ファイルにコードを埋め込みスクリプトを実行する攻撃は可能ですが、PHPは組み込み型であるためほとんど制限無く任意スクリプトが実行できます。&lt;/p&gt;
&lt;p&gt;open_basedirを利用することによりリスクは低減できますが、仕様的に脆弱であることには変わりありません。&lt;/p&gt;
&lt;p&gt;
以前、PHPにも&amp;lt;?php ?&amp;gt;タグ無しにスクリプトを実行できるようにする事が議論されたことがあります。残念ながら実現しませんでした。
&lt;/p&gt;
&lt;p&gt;未初期化セッションIDの受け入れも非常に重大なセキュリティ上の問題です。これについては別の機会に解説したいと思います。&lt;/p&gt;
&lt;p&gt;
仕様以外の問題にリリースの問題もあります。PHPは言語とモジュール（ライブラリ）が一体となってリリースされています。言語とモジュールは別に管理されている方がアップグレードが行い易くなります。リリース通りにアップグレードしようとすると非常に多くの変更が含まれるモジュールのアップグレードも行わなければなりません。変更量が多くなるとアプリケーションへの影響が把握しづらくなります。&lt;/p&gt;
&lt;p&gt;PHP本体とモジュールはAPIさえ合っていれば自由に組み合わせることが可能です。セキュリティ維持の為、新旧組み合わせて利用する事は、PHP以外の言語では当たり前のように行われています。PHPでは、あまり一般的に行われているとは思えません。&lt;/p&gt;
&lt;p&gt;PHP4のサポートが終了し、PHP5に移行しようとされている方も多いと思います。現在PHP5.3が開発中です。最後のPHP5リリースになれば良いと思っていましたが、PHP5.4もリリースされる事は確実な状況になってきています。この調子だとPHP5.5もリリースされるかもしれません。企業ユーザにとってはあまり好ましい状況ではありません。&lt;/p&gt;
&lt;p&gt;PHPにはダメな所も多いので「PHPより○○○○の方が良いよ」と言う場合、具体的に比較すれば良いと思います。&lt;/p&gt;</description>
			<content:encoded><![CDATA[<p>言語を替えると安全になる、という議論はあまりに短絡的です。具体的に議論しないと意味がありません。</p>
<p>
PHPは仕様的に脆弱になる部分があります。仕様が原因で脆弱になる例</p>

<ul>
  <li>- 組み込み型の言語仕様</li>
  <li>
- リモートファイルインクルード（デフォルト無効）</li>
  <li>
- 未初期化セッションIDの受け入れ</li>
  <li>
- 透過的セッション管理（デフォルト無効）</li>
</ul>



<p>などです。中でも組み込み型の言語仕様はローカルファイル読み込みに脆弱なアプリケーションでは致命的な問題です。PHP以外の言語でも、例えば、画像ファイルにコードを埋め込みスクリプトを実行する攻撃は可能ですが、PHPは組み込み型であるためほとんど制限無く任意スクリプトが実行できます。</p>
<p>open_basedirを利用することによりリスクは低減できますが、仕様的に脆弱であることには変わりありません。</p>
<p>
以前、PHPにも&lt;?php ?&gt;タグ無しにスクリプトを実行できるようにする事が議論されたことがあります。残念ながら実現しませんでした。
</p>
<p>未初期化セッションIDの受け入れも非常に重大なセキュリティ上の問題です。これについては別の機会に解説したいと思います。</p>
<p>
仕様以外の問題にリリースの問題もあります。PHPは言語とモジュール（ライブラリ）が一体となってリリースされています。言語とモジュールは別に管理されている方がアップグレードが行い易くなります。リリース通りにアップグレードしようとすると非常に多くの変更が含まれるモジュールのアップグレードも行わなければなりません。変更量が多くなるとアプリケーションへの影響が把握しづらくなります。</p>
<p>PHP本体とモジュールはAPIさえ合っていれば自由に組み合わせることが可能です。セキュリティ維持の為、新旧組み合わせて利用する事は、PHP以外の言語では当たり前のように行われています。PHPでは、あまり一般的に行われているとは思えません。</p>
<p>PHP4のサポートが終了し、PHP5に移行しようとされている方も多いと思います。現在PHP5.3が開発中です。最後のPHP5リリースになれば良いと思っていましたが、PHP5.4もリリースされる事は確実な状況になってきています。この調子だとPHP5.5もリリースされるかもしれません。企業ユーザにとってはあまり好ましい状況ではありません。</p>
<p>PHPにはダメな所も多いので「PHPより○○○○の方が良いよ」と言う場合、具体的に比較すれば良いと思います。</p>]]></content:encoded>
			<link>http://blog.ohgaki.net/lamp-p-php-perl-python-ruby#c15146</link>
		</item>
			</channel>
</rss>
