fc2ブログ

奇特なブログ

「殊勝に値する行いや心掛け」を意味する、奇特な人になる為のブログです

任意のPHPファイルをサーバー上をアップロードする際のセキュリティ上の懸念点

追記(普通は末尾に書くんでしょうけど)

以下の質問ですが、リンク先のPHPプロの方でも打ち切らせて頂いたので、
こちらでも、打ち切らせていただきます。
ご意見頂いた方々、どうもありがとうございました。

結論だけ書いておきますと、「サーバーに任意のPHPファイルをアップロード出来る」というのは、
やはり「危ない」ということで、Webサービスとしての展開は止めようと思います。
やるとしたら、クライアント側で解析してサーバー側では結果だけ表示とかですかね。
これはこれで、別の問題がありそうですけど。

以上です。

---------------------------------------------------------------------------------------------

今回は、いつもと違う感じの記事でして「質問」です。
実は、ココ http://www.phppro.jp/qa/4385 とか、
色々な所で同じ質問をさせて頂いてたりしてまして、まぁ「マルチポスト」なんでしょうけど、
僕の場合、そもそも質問をしても返答が無いケースも多く、それでこうする事にしました。
きちんと「管理」はしますので、教えていただければ幸いです。

以下が、質問の本文です。
PHP、セキュリティ、Webサービスに詳しい方、是非ともご意見を頂ければ幸いです。
コメント欄やツイッターなどでも構いませんので。

---------------------------------------------------------------------------------------------

現在、こちら http://d.hatena.ne.jp/gallu/20140812/p1 の記事などを見まして、
「発受注者双方にとって、システムの質を計る為の参考の一つ」となる為の、
PHPのソースコード診断ツールを作っています。
Webサービスでの提供を検討しています。

そして、検討を始めて思ったのですが、
PHPのソースコードを診断するということは、
PHPのソースコードを解析する必要がありまして、
そして、解析する為には、
PHPのソースコードが書かれているファイルの内容を取得する必要があると思いました。
そして、Webサービスとして考えますと、
Webサーバー上にPHPファイルをアップロードしてファイルの内容を取得する(クライアント側で出来なくもないでしょうが、出来ればサーバー側でしたいです)必要があると思ったのですが、
そうすると、「任意」のPHPファイルがアップロードされるケースがあります。
ファイルの内容を取得する(file_get_contentsなど)なら、基本的には問題ないと思っていますが、
PHPファイルが読み込まれる(requireなど)だと、
ソースコードの内容次第ではセキュリティ的に悪い事が出来ると思いました。
あるいは、ファイルの内容を取得するだけでも、
「一時的」には、PHPファイルをサーバーに上げる必要があるので、
診断解析するプログラム上では問題無くても、
シェルコマンドインジェクションで、外部からアップロードされた任意のPHPファイルを実行されれば同じだと思いました。

以下で、質問をまとめさせて頂きます。

Q1.ファイルの内容を取得(file_get_contentsなど)する方法なら、セキュリティの問題は発生しないと思いますが、いかがでしょうか?

Q2.上記のシェルコマンドインジェクションについては、「サーバー内の全PHPファイルでジェルコマンドインジェクションの恐れがない」事を確認すれば良いと思っていますが、
いかがでしょうか?

Q3.ディレクトリトラバーサルと上記シェルコマンドインジェクションを除き、他にセキュリティ面での懸念はどういったものが考えられますでしょうか?

質問に回答するにあたり他に必要な情報がありましたら、その旨を回答していただければと思います。

それでは、どうぞよろしくお願い致します。

---------------------------------------------------------------------------------------------

テーマ:日記 - ジャンル:日記

  1. 2014/08/24(日) 14:06:04|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0

いわゆる「型無し」ってこういうのだと思われ

「短い記事も大切」ですねって事で。

「守破離(の中の型無し)」と「メガテンの思想(の中のカオス)」話を組み合わせると、
こんな感じになるんじゃないかというメモです。

「秩序なんて不要で全部破壊すれば良いんだ」と、
「今ある"全て"のモノを否定(破には、否定という意味合いが必ず出てくると思うので)」し、
離をしてしまうので「型無しカオス」であり、
「秩序の必要性も分かるんだけど、俺は自由の方が"好き"なんだよな。まぁ、偏っているとは思うけど」と、
自分の偏りを「認め」、必要な秩序を壊さない程度に自由を謳歌するのが、「型有りカオス」で、
それが、僕が個人的に言ってる「イケてるカオス」という感じがするなぁ。

あと、これも個人的に最近思う時が多いんですけど、
「好き・嫌い」と「正しい・間違っている」は、ごっちゃにしてはいけないとも思いますね。

テーマ:日記 - ジャンル:日記

  1. 2014/05/20(火) 10:14:18|
  2. 教育
  3. | トラックバック:0
  4. | コメント:0

「IT業界 深刻化する人材不足」について

えっと、こういう記事 http://www.nhk.or.jp/ohayou/marugoto/2014/04/0424.html が最近出てましてですね。
で、正直「今更感」が多々あるんですけど、少し触れてみたいと思います。

といってはみたものの、ココ http://hayabusa3.2ch.sc/test/read.cgi/news/1398431243/ に多くの問題点が既に書かれています(「火の無い所に煙は立たない」と思いますけど)ので、
あまり書くことが無いんですけどね(苦笑)
ただ、書かれていない(多分)事で一つ思う事として、
「無知である事を、どこまで許容出来るのか?」というのがある様に思いますので、
その辺りについて。

新人さんなり、中途採用の人なり、外注とかを新たに職場(に限らんのだが)に入れました。
こういった方々は、上司が知っている事でも、当然知らない事も多々あります。
なので、当然「質問」をしてきます。
ところが、それに対して「そんなものググれ」「独学しろ」と突き放した様な態度を取ると、
その新しく入ってきた人は、その上司や、もし職場全体がそういう環境だったら、
一線を引いていってしまうんですね。
で、下手すると居なくなる。
個人的にもそうですし、他人でも何人も知ってますよ。
上記の様な言葉、「その上司に対する信頼感を持った後ならNGじゃない」んですけどね。
でも、最初からそれをやったら、多分NGになっちゃうと思いますね。殆どの場合は。
ですから、上司の方には、「自分が新人とかだった時の事を思い出してほしい」と思いますね。
あるいは、「当時の事を覚えていない」のなら、
「今の自分にとって、"初心者になれる分野"に足を突っ込んでみる」でも良いんじゃないかと思いますね。
個人的には、最近TRPGに足を突っ込んで、この辺りは痛感中ですけど。

こういう風 http://trpglove.seesaa.net/article/6307374.html にならない為(まぁ、ルサンチマンという言葉もありますけどね)にも、「新たに来た人に対する受け入れ体制」というのを、もうちょっと考える必要があるんじゃないですかね。

テーマ:日記 - ジャンル:日記

  1. 2014/04/28(月) 14:09:38|
  2. 教育
  3. | トラックバック:0
  4. | コメント:0

「一般知能」という分野について

※いつも以上に「駄文(根拠が比較的弱い)」になってしまったと思うので、興味ない人は読まないのを推奨します

なんか、「自分の得意な事って何だっただろ?」という様な事を考えていた時に、
「そういえば、昔、公務員試験を受けた時に、"一般知能"って分野があって、
その分野の点数が良かった(特に資料解釈)なぁ」というのを思い出しまして。
で、久々に問題などを読んだり解いたりしてみて、
「何で、学校とかでこういう問題を解く訓練をさせないのか」
と思いましたね。
で、実は「一般知識」という分野もありまして、
知識と知能の違いとか、
知恵とか知性とかを調べ始めたらワケが分からなくなりましたので、
「ただ、これは言えるんじゃない?(後で書きますが、こういう考え方が出来るのも大切だと思います)」という部分を書きたいと思います。

まず、公務員試験には、一般知識と一般知能という分野があり、
一般知識 http://komuin.nobody.jp/kakuron/chishiki.html
一般知能 http://komuin.nobody.jp/kakuron/chinou.html
となっています(試験区分によって、若干違うかも。一般知能には「空間把握」というのもあるみたいなので)と。
また、公務員受験生の多くは、一般知識「ではなく」、一般知能の方で「苦戦する」みたいです。
まぁ、そりゃあそうですよね。
この試験独自の分野で、それまであまり出てこなかった様な問題が多いんじゃないかという気もしますし。
ただ、個人的には、あまり苦戦しなかったんですけど(苦笑)
まぁ、それはさておき、一般知能全体の傾向と、各分野について色々書いていきたいと思います。

まず、一般知能って、「一般知識の理解を前提」としていて、
で、その知識を基に問題を解いていく分野だと思います。
ですから、知識が無ければ、どうにもならない。
「その知識自体ではなく、その知識を、どうやって使うか」という様な、
応用的な能力が求められる気がしました。

で、それを踏まえて、各分野を個別に見ていきたいと思います。

1.文章理解

どう見ても、国語や英語の知識が必要(読めなきゃどうにもなりませんから)でして。
まぁ、他の分野でも、問題は日本語なので、日本語は読めなきゃどうにもならんのですがw
それに加えて、「文章の中から、正解もしくは正解のヒントを見つける能力」というのが求められると思います。
実際、文章の書き手でもあるし読み手でもあるけど、
「正解は何処にあるか(何処に書くか)」というのは、無意識の内に探している(書いている)様に思うので。
あと、この分野を勉強したら身に付くかどうかは現状不明ですけど、
文章というと、「行間を読む」「ニュアンスを掴む」「暗喩・隠喩を見つける」というのが、
読解力の差異となって出てくる様には思いますね。

で、個人的には、まぁまぁ得意でしたね。

2.数的推理

当然の事ながら、数学の知識が必要かと。
あと、方程式とかの数学の公式を「どう使うか」という能力が重要だと思われます。
いや、「公式」を覚えていても、「どの局面でどう使うか」というのが大切だと思いますから。
あと、推理ものなので、どうも「推理小説とか映画(古畑とかコロンボとかアガサ・クリスティとか)」とかで必要な推理能力も多少は必要の様な。

で、個人的には、一般知能の中では一番苦手でした。
だって、数学苦手でしたし(苦笑)

3.空間把握

流れ的に、こちらを先に。
この分野は、僕が公務員試験を受けた時には無かった気がしますけど、
時代なのか分野なのかは現状不明ですが、ある模様。
で、この分野では、数学(の中でも図形)の知識が問われる様な問われない様な。
とりあえず、この辺 http://matome.naver.jp/odai/2138043401762960601 とか、この辺 http://www.kantokushi.or.jp/lsp/no605/605_02.html と関連性がありそうに思います。

で、個人的には、やった事はないですけど、多分苦手だと思いますね。
先程と同じで、数学(の中でも、図形が特に)苦手でしたし。

4.判断推理

問題によって、難しかったり簡単だったりとムラが多かった記憶のある分野。
で、この分野と次の資料解釈は、
他の分野に比べて、この分野の知識が必要というのが、あまりない様な。
まぁ、数学じゃなくて算数の知識は必要に思うんですけど、
あまり、「これです」という分野は無い様に思いますね。
まぁ、判断推理については、「推理」はあるんでしょうけど。
あまり、学校の授業で身に付けるというより、「遊び」で身に付ける能力な気もします。
だって、学校の成績そうでもない(中堅程度の高校を卒業した程度の学力でしたし)僕の、
数少ない得意分野でしたから。

で、個人的には、「資料解釈の次に得意(問題によっては、文章理解の方が得意だったかも)」でした。

5.資料解釈

名前の通り、「その資料を解釈して、どんな事が言える?」かを計る分野かと。
これを見て、この記事 http://d.hatena.ne.jp/kitoku_magic/20140324/1395656337 の属性表の事を思い出しましたけど、
そういった能力なのかなと。
で、この分野は、簡単な計算が必要なので、算数の知識は必要だと思いますけど、
判断推理と同じで、よく分かりませんね。

で、個人的には、もう良いですね。
というか、確か一回も間違えた事が無かった記憶もあって、
「サービス問題」だと思った記憶もありますね。

さて、駄文を垂れ流してきましたけど、
特に思ったのが「確実に言えるのはどれか?」という、判断推理の「問題文」と、選択肢の「消去法」。
現実での難しい問題や、正解の無い問題を考える時に、
「これは無いと思うし、あれも無いと思うし、でもこれは確かなんじゃない?」という考え方をする事が多いんですけど、
特に判断推理の解き方も、結構コレと似てましてですね。
難しいですから、結構途中で思考停止になりがちなんですけど、
「与えられた情報から、これは無いというものを絞り込んでいって、正解を見つけ出す」という考え方をしていって、
正解(っぽい物)を見つけるとでも言うんですかね。
消去法については、こちら http://happylifestyle.com/1462 を読んでも同意ですし、
あと、「選挙の候補者を選ぶ時」にもやってますね。
だって、簡単な問題ならともかく、「選択出来ない」んですよ。
だから、消去法使っちゃいますね。

あとは、この記事 http://homepage1.nifty.com/king-of-license/koumuin-suteki.html の中に、
ある課題が与えられた場合に、その課題から確実にどのようなことがいえるのか、またある資料が与えられた場合に、その資料から確実にどのようなことがいえるのかを素早く分析する能力
様々な数値や資料を見ながら、そこでどのようなことがいえるのかということを素早く判断する
数学の公式や複雑な定理を数多く知っている人よりも、それがわからなくてもとにかく問題文で与えられた条件からどのようなことがいえるのかを判断する能力
という様な事が書かれているんですけど、
「別にこれ、公務員に限った話じゃないんじゃね?」という感じしかしませんでして。
ですから、こういう問題を考えたという点は評価出来ると思うんですけど、
これを、「義務教育は微妙かもしれないけど、せめて高校教育では入れてほしいなぁ」という点で、
「非常に惜しい」という感じがしました。
なんでしょう、基本知識が必要なのは、
上記の前提にも書いた通り必要(逆に、僕はこっちが特に必要ですね)だと思いますけど、
こういった「知能」を駆使して、例えばこういう http://www.lifehacker.jp/2014/02/140212knowledge_and_experience.html 事が出来る様になるとか、
あとは、先程も書いた通り、難しい問題を読み解く能力にも繋がる様に思いますね。
まぁ、現状ではイマイチ謎ではありますけどね。
ただ、色々見ていますと、「知識だけだと頭打ちになる」様にしか思えないんですよ、だから。

あと、この話とは直接関係は無いと思いますけど、
上記の問題(文章理解はしなかったと思うけど)を解く時に「紙に書いて整理」というのを、よくやっていたんですけど、
「表」とか「図」とか「絵」とか「メモ」を書いて、
「まず、問題を整理」というのをしないと、難しい問題って解けなかったですね。
いや、簡単な問題とか記事なら必要無いんですけど。
で、まぁここは個人差大きそうですけど、「PCじゃダメ」なんですよね。
「自由に描く制約が多くて」、「ササっと書けない」から、途中で嫌になっちゃうという。
これは、今でも時々思いますね。
なので、この辺も含めて大切かなぁと。

とりあえず、「教育に今すぐコレを入れた方が良い」と思うのと、
「一般知能勉強会」とかやって、問題出しまくってみたら面白いんじゃない?とか思いましたので、
市販で出ている問題集を買ってみようと思いますw
当面は、「一日、最低一問解く」を続けてみようかなと。
で、いつか、もう一つのブログの方にも、「公務員試験の一般知能から学ぶ」って書いてみたいw

テーマ:日記 - ジャンル:日記

  1. 2014/04/25(金) 17:54:48|
  2. 教育
  3. | トラックバック:0
  4. | コメント:0

IT業界で技術を学ぶのに良いと思われるブログ各種

えっと、この記事を書くきっかけとしては、
技術者でネットの色々な技術ページを読んでいる人は、それなりにいらっしゃるみたいなんですけど、
ネットといっても、あまりにも技術ページが多過ぎるわけで、
ダメな技術ページばかり読んでいる人も多いのではないかなぁとも思いまして。
いや、ネットは見ているのに、あまりにも僕と意見が違い過ぎるなぁという人が結構いらっしゃるので(苦笑)

なので、少なくてもこれは大ハズレではないだろう(というか、自身の専門分野に関しての記事は、妥当な記事が大半では)と思われる人のブログ一覧を、以下に書き連ねてみた次第です。
皆さん、有名人だと思いますけどね。

で、多分というか確定で、忘れている人が沢山いらっしゃると思うので、ツッコミいただければ追記するかもしれません。

あと、並び順は適当で、何も意味はありません。

少しでも、論外なプログラムや設計や開発手法などが、現場から減ることを祈りつつ、書き残しておきます。

仙石浩明氏
http://www.gcd.org/blog/

高木浩光氏
http://takagi-hiromitsu.jp/diary/

小飼弾氏
http://blog.livedoor.jp/dankogai/

徳丸浩氏
http://blog.tokumaru.org/

吉岡弘隆氏
http://d.hatena.ne.jp/hyoshiok/

まつもとゆきひろ氏
http://www.rubyist.net/~matz/

増井雄一郎氏
http://blog.masuidrive.jp/

ミック氏
http://www.geocities.jp/mickindex/database/idx_database.html

奥野幹也氏
http://nippondanji.blogspot.jp/

中島聡氏
http://satoshi.blogs.com/

あきみち氏
http://www.geekpage.jp/

島国大和氏
http://dochikushow.blog3.fc2.com/

mala氏
http://subtech.g.hatena.ne.jp/mala/

テーマ:日記 - ジャンル:日記

  1. 2014/02/01(土) 21:05:05|
  2. IT
  3. | トラックバック:0
  4. | コメント:0
前のページ 次のページ