- ベストアンサー
そのWebアプリケーションが何の言語を使っているかを知るには?
参考にしているサイトが何の言語を使用しているか調べる方法はありますか? 普通に「.php」とか「.jsp」などという拡張子が見えていれば当然わかるのですが、ただ「~/?abc=123」みたいなURLだと判断が付かないので。。。 よろしくお願い申し上げます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
言語によってはhttp headerで色々喋るものもあります。 (phpとかmod_perlなんかは結構喋る) もちろん、大抵は設定で黙らせるし、喋ってるものと実際動いてるものが違うことも多いので、あんまり当てになりませんが。 あとはエラーメッセージから推測することができるかもしれません。 ただ、大抵エラーメッセージもカスタマイズされてるし、下手すると訴えられたりするかもしれないので、これはあまりやらない方が良いかも。 (分かった人が作ってればエラーメッセージくらい変更しているし、分かってない人が作ってる場合、致命的な状況になるかもしれんし) それ以外は、OSやhttpdなんかから候補を絞り込んで、それぞれの癖から推測するくらいかなぁ。。。 (cookieの投げ方とか、session idの値とか、サニタイジングのしかたとか、裏で使ってるDBMSとか) #管理者からすれば、利用者に使ってる言語が知られるのも(知られたくない場合)セキュリティホールの一種なので、あまり探りを入れると嫌われるので注意。
その他の回答 (2)
- Dpop
- ベストアンサー率51% (279/544)
#1 です。 >ヘッダ情報か何かで識別できるといいのですが。。。 >そんなことが出来たら逆に問題ですかね。 微妙に、??? です。 ある程度、知識を持たれている方の様ですし、HTTPについて、もう少し調べてみてはいかがでしょうか? HTTPって、MIME Type text/html の文章を表示するためのプロトコルなので、使用している言語(?)によって、ヘッダ情報に違いがあったら、HTTP違反になってしまい、ブラウザなどのアプリケーションで正しく表示できる。と言う保証が無くなってしまいます。 サーバーサイドスクリプトの場合には、拡張子の違いにより言語が分かりますが、CGIの場合、それが Perl なのか Ruby なのか Python なのか csh なのか C++ なのか PHPによるCGI なのか・・・ 区別は付きませんよね? 凄く当たり前の事だと思うのです。その当たり、ちょっと考えて頂けると、自ずと答えがでてくる様な気がします。
お礼
ご回答、ありがとうございます。 仰せのとおり、ちょっと私の勉強不足と申しますか、虫のいい質問をしてしまったのかも知れません。 理屈で考えれば、仰るとおり当たり前ですね。 ただ、かなり昔ですが、何かのスクリプトのサンプルを見ていた時に、そのサーバの言語かOSか何かを表示するような例があったような覚えがあったもので、もしかしたら方法があるのではないかと思い質問させて頂きました。しかし、その記憶もかなりいい加減なものです。 的確なご指摘、ありがとうございました。
- Dpop
- ベストアンサー率51% (279/544)
正確なところはわかりません。 Java Servletの可能性が高いです。しかし、.htaccess の設定によっては、拡張子が無いファイルを、特定のプログラム(厳密には違いますが。)に割り当てることもできるので、「絶対にこれだ。」とは言えません。
お礼
早速のご回答、ありがとうございます。 そうですね。仰るとおり、.htaccessでコントロールできるのでどうにでも出来てしまいますよね。 ヘッダ情報か何かで識別できるといいのですが。。。 そんなことが出来たら逆に問題ですかね。 ともあれ、本当にありがとうございました。
お礼
ご回答ありがとうございます。 > cookieの投げ方とか、session idの値とか、サニタイジングのしかたとか といったあたりのヒントを手掛かりに探ってみようと思います。 本当に助かります。 ありがとうございました。