- ベストアンサー
Yahoo画像検索API時のキャッシュ回避方法
http://phpspot.net/php/pgPHP%E3%81%A7Yahoo!API%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB.html 上記URLに掲載されているAPIサンプル(yapi.zip)を使っているのですが、 cache ディレクトリに検索されたファイルが蓄積されサーバー容量を圧迫して困っています。 そこで、このcache機能をオフにしたいのですが、 zipファイル内のweb.phpのどの部分を修正すればよいのでしょうか? よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です 52行目の fputsをコメントアウトしてみたらうまくいかないですかね? 昨日と同じ状態なので試してはいません。 間違ってたらごめんなさい。 > また、セキュリティリスクをご指摘いただけ非常にありがたいのですが、 > 私自身もこんな質問をしているレベルのPHP初心者なため、 > 多少のリスクは承知でこのソースを元に改造を進めたいと考えております。 えーと・・・ 正直あなた(が利用しているサーバー)だけの問題ではないです。 個人で自宅なりで運用しているサーバーですか? もしくは実機単位でレンタルしているサーバーですか? このままの状態だとサーバーになんかしらの悪意のあるコードを埋め込む事ができます。 サーバー自体に無限ループするコードでも埋め込めば、ダウンさせる事も出来るかもしれません。 ご利用のサーバーに対してではなく、あなたのサイトにアクセスしたユーザーに対して、意図しないURLい飛ばす事もできます。 なにかしらの攻撃を受けたときに被害に合うのはあなただけではないという事です。 不特定多数の利用者、またはその周りの人間に対して迷惑をかける事になりかねません。 私はセキュリティに関するプロです。と自信を持って言えるわけではありません。 一般的なそこら辺にいるプログラマです。 ですがあなたのサイトを見つけたら1時間もしないうちに悪意のあるコードをばらまくサイトに出来ると思います。 残念ながら、それくらい穴のあるコードです。少し知識があればすぐにわかります。 なのでプログラムを使うなら、ある程度は読み解けるくらいの勉強をしてください。 あと無償のものにはそれなりに気を使ってください。 グダグダとすみません・・・
その他の回答 (1)
- 1minn
- ベストアンサー率57% (52/90)
DLしてみました。 が、試してません。 ソースの中の数少ないコメントにキャッシュ時間の設定がありますが、そこを変えてもだめなんですか? 47行目 と思ったけど・・・ これだと、ファイル増え続けますよね。 普通にバグだと思います。 「サーバーにキャッシュとして置いといたファイルが1時間以内であればキャッシュから取得する」という意味合いだと思いますが、ソースにはファイルの削除が無いようですね。 ざっとソース見た感想ですが・・・ このまま公開するのはやめた方がよいですね。穴が多いです。 最近PHP始めました! って感じの人のソースを見た気分です。 readmeにcacheディレクトリは777でって書いてます。 公開ディレクトリで? ありえません・・・ $_GET["q"]をそのままHTMLのinput要素に描画させています。 javascript埋め込まれたら・・・ ぱっと見ですぐに見つけたものです。 たぶんまだあるんだろうなと感じます(勝手な感覚です) というワケでお勧めはしません。 結局回答になってなくてすみません。 とりあえずHDD喰われて困ってるのであればcronで定期的に削除でもしたらいかがでしょう? 使い続けるのであれば、くれぐれも踏み台等にされない事を祈ります。
お礼
ご回答ありがとうございます! ご回答いただいた通り、キャッシュ時間をいじるだけでは意味がないため そもそもキャッシュをしないような仕様にしたいのですが、お調べいただき幸いです。 また、セキュリティリスクをご指摘いただけ非常にありがたいのですが、 私自身もこんな質問をしているレベルのPHP初心者なため、 多少のリスクは承知でこのソースを元に改造を進めたいと考えております。 引き続き回答のほうは募集させていただきたいと思います。
お礼
回答ありがとうございます、お礼が遅くなって申し訳ありません。 // $fp = fopen($cachename,"w"); // fputs($fp,$xml_str); // fclose($fp); ↑の3行をコメントアウトしたところ、キャッシュフォルダにキャッシュ画像が溜まらず 検索が行えるようになりました。