URLにidを入れるとファイルがDLされる!困っています

このQ&Aのポイント
  • ある動的サイトで、特定のidを入れるとページが開かずにファイルがダウンロードされる問題が発生しています。そのファイルには重要情報が含まれているため、非常に困っています。
  • idを削除しても問題が解決せず、データベースの欄を確認しても他のidと変わらないことがわかりました。どうすればこの問題を解決できるでしょうか?助言をお願いします。
  • 情報が不足しているかもしれません。何か追加で必要な情報があれば教えてください。
回答を見る
  • ベストアンサー

URLにあるidを入れるとファイルがDLされるようになってしまう

よろしくお願いします! タイトルがイミフで申し訳ございません。 ある動的サイトを運用していて、何とはなしにURLをチェックしていたのですが、ある番号のidを入れると、なぜかページが開かずにそのphpファイルがDLされるようになってしまっています!! そのファイルには、ぼくのDBのパスワードなども書いてあるので、正直非常に困っています。 ちなみに、URLは、例として、 http://www.***.com/***.php?***id=5000 という感じのURLで、ある数字を入れるとファイルのDLがされてしまいます。。 そのid(例えば100)のデータベースの欄を見ても、他のidとものと何ら変わりはありませんでした。 また、「こりゃいかん!対応策が見つかるまで削除じゃ!!」と思ってそのidの欄をデータベースから削除しても、やはりDLがされてしまいます。。 どうしたらよいのでしょうか?? どなたか原因や対策などご助言いただけますと幸いです!! また、このあたりの情報が不足している! などございましたらおっしゃってください!! よろしくお願いいたします!

  • MySQL
  • 回答数1
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (740/5645)
回答No.1

そのサーバーでは拡張子.phpがスクリプトファイルであると言う設定がなされていないのではないでしょうか。 例えば、Apacheでは、httpd.confに、 LoadModule php5_module なんとか AddType application/x-httpd-php .php とかの設定が必要になってくると思います。 これがないために、普通のファイルとしてダウンロードされるのだと思います。

hasu23
質問者

お礼

お返事遅れまして大変申し訳ありませんでした。 また、ご回答いただきましてありがとうございます! >そのサーバーでは拡張子.phpがスクリプトファイルであると言う設定がなされていないのではないでしょうか。 おそらくされていると思います。 例のURLですが、 http://www.***.com/***.php?***id=100 http://www.***.com/***.php?***id=101 http://www.***.com/***.php?***id=102 はきちんと表示されるのですが、 http://www.***.com/***.php?***id=103 だけがDLされてしまうという感じなのですが、こんなことってあるんでしょうか?? id103に入っている項目も、他のデータと変わらず、ためしに103のデータw-データベースから削除して、http://www.***.com/***.php?***id=103 にアクセスしてもDLされてしまうという現象です。。

関連するQ&A

  • php で URLにIDを付けたいのですが

    PHPを使用して会員個々のHPを作成しようと思っています。 よくURLに●ttp://********/ID=●●●というようにIDを割り振った URLを見かけますが、PHPの本を見ても、WEB上を検索してもその 手法が載っているところがありません。データベースには会員さんの ハンドルネームが登録されているので、そのデータベースにある ハンドルネームをIDとして個々のHPにくっつけたいのですが、 どのようにするとURLにIDをくっつけられるのでしょうか。 丸投げで失礼に当たってしまいますが、参考意見等でも結構ですの で糸口だけでもアドバイスをお願いいたします。

    • ベストアンサー
    • PHP
  • id,urlというテーブルにおいて、url中のファイル名が同じものを抜

    id,urlというテーブルにおいて、url中のファイル名が同じものを抜き出したい。 こんなテーブルがあります。 id url 1 http://okwave.jp/test/abc.wav 2 http://okokok.jp/456.jpg 3 http://okokok.jp/abc.wav ......続く urlは必ずファイル名.拡張子で終わっています。 これらのURL中のファイル名.拡張子が同じもの(上のid1とid3などが例です)を抜き出して、 SELECT ファイル名,COUNT(同じだった数) というふうに表示させたいのですが、どのようなSQLを組めばよいでしょうか? PHPでも構いません。 ご教授願います。

    • ベストアンサー
    • MySQL
  • URLクリックによる認証について

    http://●●●/xxx.php?username=abcde というURLをクリックします。 ('abcde'はユーザがサイトにログインする時のIDです。) すると、xxx.php内で認証処理を行い、 IDが正しければ認証済の画面を表示させることは可能でしょうか。 (勿論パスワードはIDから取得できます) DBはMySQL、DB処理部分はPEARのAUTHを使っています。 GOOGLE検索等で調べたのですが、 載ってるのはフォーム上でのログイン認証についてでした。 以上、よろしくお願いいたします。

    • 締切済み
    • PHP
  • phpファイルについて

    phpファイル(xxx.php)の<?php ?>で囲われた部分は、外部から読み取られる事は絶対に出来ないのでしょうか? データベースなどの設定(HOST名、データベース名、データベースパスワード)をドキュメントルート内のphpファイルのデータベースクラスに直接記述しています。 これって安全ですか? 一部の参考書等では、重要な設定等は、ドキュメントルートの外にファイルを置いておいて、インクルードする方法が書かれています。 phpファイル(xxx.php)の<?php ?>で囲われた部分が、絶対に外部から読み取られないのであれば、現状のまま運用しようと思っていますが、ご教授下さい。

    • ベストアンサー
    • PHP
  • パスワードがURLにみえている場合、簡単に第三者がパスワードを盗めます

    パスワードがURLにみえている場合、簡単に第三者がパスワードを盗めますか? あるサイト http://example.com/core/login にログインするのに、 通常の手段であるID欄とパスワード欄への入力後サブミットする方法の場合、 URL欄にパスワードやIDは現れませんでした。 しかし、そのサイトへのログインを簡単にするため予め文字列を次のように作成し送信すると、 http://example.com/core/login?Id=hanako&password=pasuwa-do&openWindow=default IDもですが、パスワードがURL欄に表示されたままになってしまいます。 使用は自宅なのですが、この場合、通信中に簡単に第三者にパスワードが漏れているのでしょうか? それとも、自分にはURL内のパスワードが見えているだけで、第三者には暗号化されて見えているのでしょうか?

  • PHP・セッションでのユーザー認証サイトでDL用ファイルへのアクセスも同時に制限するには

    最近PHPを勉強している初心者です。 会員制サイトの構築を考えています。 基本的な仕組みは ・会員はHTML上のフォーム入力によりログイン ・PHPから、MySQLに保存された会員データベースを呼び出して認証 ・セッションを用いて会員用ページにアクセス のようにしようと思います。 しかし、この仕組みではページへのアクセス制限しかできません。 具体的には会員用ページにのPDF文書を置きたいのですが、 ログインせずともURL直接アクセスでDLできてしまいます。 DL用ファイルへのアクセスも含めて制限するのであればBasic認証などが考えられます。 ですがユーザーに2度もパスワードを入力させるわけにはいきません。 パスワードの管理も2重になり、煩雑です。 このような場合、どうやってアクセス制限するのが良いのでしょう。 要点は ・DL用ファイルを含むすべての会員用コンテンツにアクセス制限をかける ・認証は1回のみ(できればフォームで) ということです。 類似の質問には目を通したつもりですが、解決できませんでした。 よろしくお願い致します。

  • os9.2.1がDL できない

    昨日夜os9.2をDL開始して朝のぞいたら2つファイルがありました、たしか全部で7つのファイルのはず。Explrerが途中でクラッシュしたためですね。 今日また同じようにトライしたらappleのIDとパスワードを聞いてきます、そんなのどこにありましたか、どなたか教えて下さい。

    • ベストアンサー
    • Mac
  • フォトログのURLの削除について。

    詳しい方、是非教えてください。大変困っています。 フォトログのIDとパスワードを忘れてしまい、URLの削除が出来ない状態です。 URLを閲覧出来なくする方法、もしくは削除する方法があれば教えてください。 宜しくお願い致します。 サイトはfotologue.jpです。

  • URL直打ちされるとファイルが見えてしまう

    URL直打ちされるとファイルが見えてしまう お世話になっております。 過去に似た質問が頻出し、検索すれば似た内容は出てくるのですが どうしても理解できないので質問いたします。 質問とやや外れた部分から書きますが、 自分の理解度を知っていただく為に現状の説明から書きます。 ----説明ここから----- 現在WAMP環境で会員サイトを作成しています。 ログイン画面で入力されたIDとパスワードをセッション変数で持ち回り、 各ページは表示時にセッション変数のIDとパスワードを元にDB問合せを実施し 該当会員が居なければ(セッション変数が空ならば) ログイン画面からのアクセスでない(直打ち)と判断し ログインエラーのhtmlを表示します。 phpでDB問合せ等で判定できるページ(.phpファイル)はこれで直打ち対策が出来たのですが 会員用のファイルアップローダを作る上で、 アップされた各ファイルへの直打ち対策をどうすればよいのかどうしても判りません。 ~hoge/hoge1.php ~hoge/hoge2.php ~hoge/login.php ~hoge/uploader.php ~hoge/file_dir/user1/hoge.jpg ~hoge/file_dir/user2/hoge.jpg ~hoge/file_dir/user3/hoge.jpg アップされたファイルは、どのユーザー宛のファイルかで、 user1~user3(会員分作成され、命名規則があるフォルダ)に分けてアップロードされます。 しかし上げられたこのファイルのアドレス("~hoge/file_dir/user1/hoge.jpg") を直打ちされるとログインしていないユーザーにも参照できてしまいます。 またuser別フォルダが規則的な名前なので、 user1が自分宛に送られたファイル名から user2や3のファイルを推測、直打ちできてしまう問題もあります。 例) 1.user1のフォルダにuser1宛ての"4月分経費受理済.doc" というファイルがアップされる。 2.user1は"4月分経費受理済.doc" のフルパス "~hoge/file_dir/user1/4月分経費受理済.doc" を得る。 3."~hoge/file_dir/user2/4月分経費受理済.doc" を打ち込めばuser2宛ての個別ファイルが参照できてしまう。 勿論こんな状態で使用する事など出来ません。 user1のフォルダ配下のファイルは、user1(もしくは管理者など特別な権限を持つユーザー) にしか参照できないようにしなければいけません。 ----説明ここまで----- 説明が長くなりました。冗長で申し訳ありません。 質問を再度まとめますと、 1."~hoge/file_dir/user1/hoge.jpg" などのファイルへ   URLが直打ちされた時、参照・ダウンロードが出来ないようにするにはどうすればよいのでしょう? 2.ログインしているユーザーであっても、フォルダごとの参照可能・不可をどう制御すればよいのでしょうか? 知りたいのはこの2点です。 もしかしたらこれらへの質問への回答以前に、 前提で理解していなければ行けない知識があり、 それがないから自身の検索で理解に至らなかったのかもしれません。 お手数お掛けしますが何卒宜しくお願いします。

    • ベストアンサー
    • PHP
  • セッションidの使い方について

    参考書を読んだり調べたのですが、セッションidの使い方がよくわからないので質問させて下さい。 PHP4.3.10、 session.use_only_cookies off session.use_trans_sid offになっています。 携帯でログイン(login.php)後 メニュー(menu.php)でDBに登録されているIDとパスワードが一致したら SIDを発行してユーザの識別をしたいと考えています。 そこでわからないことがあります。 メニューにはA.php、B.php・・とあるのですが リンクするたびに <a href="A.php?<?php echo SID;?>">A.php</a> <a href="B.php?<?php echo SID;?>">B.php</a> のようにするのか、または$SID=session_id();のようにするのでしょうか。 そしてA.phpやB.phpでの識別はSIDをファイルなどに保存してその都度 これを呼び出し比較していくのでしょうか。 また、$_SESSION['a']="123";と session_register("a"); $a="123"; というのは同等の意味でしょうか。 質問ばかりですがどうぞよろしくお願いします。

    • ベストアンサー
    • PHP