トップページ⇒php
1001コメント300KB

△▲ WebProg 初心者の質問 Part19 ▼▽

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/03/06(金) 00:11:17ID:???
2ちゃんねるは初めて。 WebProg 板は初めて。
質問したいけど、どうしたら良いか分からない。

そんなときは、ここに書き込んでください。
板の住人や、その他が、けなしながら、厳しく教えてくれるかも。

質問する前に、まずはここを読んでね。
【注意事項】
・質問する前にGoogleで検索してみましょう
http://www.google.co.jp/
・環境(ソフトウェアのバージョンなど)は、必ず書いてください。できるだけ詳しく。
 後から情報を書き足す、いわゆる情報の小出しは極力避けてください。
・何がしたくて、何ができて何ができないのかを書きましょう
・マルチポスト(複数のスレッドで質問する行為)は絶対に禁止です。
・過去ログは必ず読みましょう。あなたと同じ質問をしてる人がいるかも知れません。

2ch 総合ガイド
http://www.2ch.net/guide/

お願い。
適切な、板、スレ、を発見した場合、誘導してあげましょう。
スレの性質上 age 進行でお願いします。

関連情報は
>>2-3辺り

☆前スレ☆
△▲ WebProg 初心者の質問 Part18 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1219842559/
0084nobodyさん2009/03/18(水) 01:02:46ID:???
画像をプロテクトする方法って
画像自体はブラウザで見れないフォルダにいれておく、って
いうやり方?

ログインしないと見れないページは作れたんだけど、
画像の保護の仕方がわかんない。

画像は直リン張られてたら見られてしまうよね?
0085nobodyさん2009/03/18(水) 01:20:53ID:???
マルチ乙
0086nobodyさん2009/03/18(水) 01:24:59ID:???
http://debz-di.kabocha.to/archives/2009/01/20090131205930.html

2009年01月31日
mixiで投稿した画像は直リンクで公開できてしまう

mixiで投稿した画像は直リンクで公開できてしまうんだね。

今、ボクは
http://profile.img.mixi.jp/photo/member/21/68/422168_3515748545.jpg
こんな画像をプロフィールで使ってたりしますけど、ログインしてなくても見れる。(ひこにゃんが見えてるよね?)

画像のURLがどこなのかわかったらそれを外部へ公開しちゃえば
ログインセッションがなくても画像を見ることができる。

これは仕様としてかなりまずいんじゃないのかなあ。

今ちょっと、そういうセッション系で制御するヤツやってたもんで、気になってみてみたらmixiがザルでびびった。
proxyでキャッシュさせときたいとかっていう部分も考慮に入れると、まぁ多少はわからないでもないけども。
0087nobodyさん2009/03/18(水) 01:26:10ID:???
>>86
この問題にどう対応したらいいの?
0088nobodyさん2009/03/18(水) 01:49:48ID:???
「画像をphpで生成してreadfileで出力する」

↑これってどうやるの?
既存の画像をPHPで生成するように
するには、どうすればいいの?
0089nobodyさん2009/03/18(水) 11:04:09ID:ubdvzxeR
<?php
if(ry){
print file_get_contents('hoge.gif');
}
?>
0090nobodyさん2009/03/18(水) 11:18:36ID:???
1日のPVが数万程度ならスクリプトで読見込んで出力するか、
Basic認証で逃げるとかね
んでちょっとでも不可を考えるならダイジェスト認証にするとか


1日に数百万もアクセスされるのに、画像程度で一々スクリプトなんてやってられないと思うよ
0091nobodyさん2009/03/18(水) 11:31:14ID:???
>>84
ブラウザで閲覧できた段階でもうおまえの保護してる画像はお嫁にいってんだよ
0092nobodyさん2009/03/18(水) 11:32:54ID:???
>>87
直リンで張らない
http://example.com/acewmaceみたいにpathinfoを使って処理する
0093nobodyさん2009/03/18(水) 14:49:55ID:???
>>89
そのhoge.gifは、そのphpスクリプトと
同じ階層におくんですよね

だったら、URLをブラウザのアドレス欄に
直打ちしたら見れてしまうのでは?

セッションを使ってpassを入力させてログインさせて、
ログインしないと見れないページ、
というイメージでお話をしています。
0094nobodyさん2009/03/18(水) 14:51:25ID:???
>>90
(1)
>スクリプトで読見込んで出力する

だからこれがわからない

(2)
>Basic認証
ログインさせて、ログインすれば見れる、
ログインしないと見れない、こうしたいのです。
もちろんログアウト機能は必須です。
BASIC認証はログアウトできないので却下です。
実装したいのは、mixiで画像を保護できるタイプと考えてください。
0095nobodyさん2009/03/18(水) 14:52:03ID:???
>>91
ログインした人だけに画像と文章を見せたいということです
0096nobodyさん2009/03/18(水) 14:53:02ID:???
>>92
その場合、画像はブラウザから
アクセスできない場所に置くということですか?

public_htmlの上とか?
0097nobodyさん2009/03/18(水) 15:17:16ID:YwNkebpQ
データベースにおいておけば?
リクエストを受け取るのをcgiにして、そこでセッションチェックをした後データベースから引っ張ってきて出力
0098nobodyさん2009/03/18(水) 15:45:37ID:???
>>93
hoge.gif がどこのディレクトリに置いてあるか、あなたは分かるんですか?
ファイル名から PATH は分からないよね?

HTTP で見れるディレクトリは ~user/html/ だとする

そして image.php が画像を表示するスクリプトだとして、表示は image.php?img/test.jpg といった感じで要求する。

読み込む画像は

~user/webimg/

を基準にする。
なので、image.php?img/test.jpg といった要求は

~user/webimg/img/test.jpg

を読み込むこととなる。
あとは読み込み、表示する画像 (拡張子で判断しちゃってもいいと思う) の Content-type をちゃんと出力してから
画像をそのまま print すればいい
0099nobodyさん2009/03/18(水) 15:59:23ID:???
>>97
静的にアクセスさせるかスクリプトにするかが焦点なのだから
どこに置くかは問題ではない
0100nobodyさん2009/03/18(水) 16:24:38ID:???
>>99
ユーザー毎に処理を変えると色々とめんどいけどデータベース使うならだいぶ楽じゃね?と思った
ついでに二次情報も色々付加できるし
あとどこに置こうか悩まなくても外から直接アクセスはできないだろうし
0101nobodyさん2009/03/18(水) 19:14:38ID:???
>>96
ブラウザでアクセスできないとこに置くのは当たり前
0102nobodyさん2009/03/18(水) 19:16:15ID:???
>>97
別にいいんだけど画像にデータベースを使う用途が気に入らない
0103nobodyさん2009/03/18(水) 19:17:31ID:???
何度も言うがブラウザで画像を表示時点でおまえの画像は抜かれてるんだよ
0104nobodyさん2009/03/18(水) 19:49:27ID:???
お前は何を言ってるんだ
0105nobodyさん2009/03/18(水) 20:35:44ID:???
>>103
パスワードを入力するフォームを表示して、
そこにパスワードを入力させて、
パスワードが一致した場合のみ、ログインを成功させて、
ログインが成功した場合のみ、秘密の文章と画像を見せる
イメージです。

そのあと画像をダウンロードされて、
それをwinny等で拡散される危険性はありますが、
そういうことをしない人にだけパスワードを教えることにします。

この説明で理解できますか?
0106nobodyさん2009/03/18(水) 20:54:18ID:???
>>97,98,99,100,101,102

あの、、、
決まりきったやり方って実はないのですか?

基本、mixiと同じで、
それプラス、画像もプロテクトできれば
十分なのですが、、、

定石というか、セオリーみたいのって
ないのですか?
0107nobodyさん2009/03/18(水) 21:10:21ID:???
htaccess
0108nobodyさん2009/03/18(水) 21:16:13ID:???
俺だったら普通に見れないとこに置いてスクリプト経由で出力するかな
0109nobodyさん2009/03/18(水) 21:58:29ID:???
fwの中に画像鯖おいといて
mod_proxyを動的に変更なんてできないか
0110nobodyさん2009/03/18(水) 22:21:30ID:???
yahoo 画像 ドメインでググレば解決します
0111nobodyさん2009/03/18(水) 22:28:48ID:???
buttobi.netがとうとうperlの使用を中止したな
phpの方がセキュリティが高いからしょうがないか

ttp://hostingfaq.btblog.jp/cm/kulSc1d5649A384C4/1/
0112nobodyさん2009/03/18(水) 23:54:29ID:???
PHP難読化ツールと、
PHP暗号化ツールと、
どう違うの?
0113nobodyさん2009/03/19(木) 02:16:06ID:???
全然違う概念だろ
0114nobodyさん2009/03/19(木) 05:17:56ID:???
PHPで画像を出力する場合、
画像しか出せないんだね。

文章と画像と両方出そうと思ったんだけど、
「ヘッダーがすでに出力されています」
とかいうエラーがでやがる。
0115nobodyさん2009/03/19(木) 08:44:42ID:???
両方って、HTTPヘッダのContent-Typeにどういうのを出力したいの?
0116nobodyさん2009/03/19(木) 08:55:53ID:???
>>106
<image scr='http://hogehoge/image.php?〜'>
画像表示タグってこうだっけ?
まあとりあえずこんな感じでスクリプトにパラメータ渡せばいいんじゃね?
よくこういう形は見る
0117nobodyさん2009/03/19(木) 09:40:12ID:???
1枚1枚動的に処理だとサムネ一覧100枚とか負荷がきつそうだな
セッションIDとhtaccessの関連付けが可能なら解決なんだけど仕組み的に無理か
0118nobodyさん2009/03/19(木) 10:40:12ID:???
>>111
それは誤解
Perlのほうがセキュリティは上
0119nobodyさん2009/03/19(木) 10:58:26ID:???
言語レベルでどっちが上とかねえよ
0120nobodyさん2009/03/19(木) 11:02:43ID:???
>>119
わかっちゃねえな
PHPは脆弱性を多く生んできた言語
改善は進んでるがまだ十分ではない
0121nobodyさん2009/03/19(木) 11:12:50ID:???
ちなみにbuttobi.netが言ってるセキュリティ上の危険というのは
おそらくsuEXECのことだろ
PHPでも使えるようにしたら同じこと
適切な設定ができてないとOSコマンドも一通り使えるしな
0122nobodyさん2009/03/19(木) 11:59:06ID:???
>>111
perl使えない鯖なんてゴミ屑以下だな
0123nobodyさん2009/03/19(木) 12:02:45ID:???
>>122
perlもロクに使えないゴミ屑が多かったからこその決断だろ。常考。
0124nobodyさん2009/03/19(木) 12:03:38ID:???
こういう言い方をするPerlユーザーを締め出してるサーバは使えるね
0125nobodyさん2009/03/19(木) 12:57:38ID:???
ぶっとびネットGJ!!!!
もっとperl(笑)ユーザーを締め出しやって
0126nobodyさん2009/03/20(金) 05:03:33ID:???
みんなって、フォームで国名入力して欲しいとき、selectタグとかデータベースどんな感じで作ってますか?
0127nobodyさん2009/03/20(金) 05:31:24ID:???
そんなときがありません
0128nobodyさん2009/03/20(金) 06:15:42ID:???
データベースに登録しまくってphp側で処理することにしますた
0129nobodyさん2009/03/20(金) 10:03:53ID:???
とあるサイトからデータファイルを取ってきてそれ使ってる
0130nobodyさん2009/03/20(金) 11:02:29ID:???
とあるサイトってどこだい
0131nobodyさん2009/03/20(金) 11:12:34ID:???
おまえの態度が気に入らない
0132nobodyさん2009/03/20(金) 11:14:05ID:???
国名と国コードの対応表なんてどこにでもあるんでは?
0133nobodyさん2009/03/20(金) 18:50:00ID:o14DQ4cS
アマゾンやYOUTUBEで
これを検索したからこれをお勧めします のような機能を作りたいのですが
どのような言語を勉強すればいいんでしょうか?
PHP mySQLだと考えているんですが合ってますか?またお勧めな言語がありましたら教えてください
XPで以前はJAVAを少ししてました
よろしくお願いします
0134nobodyさん2009/03/20(金) 19:01:39ID:???
アマゾンやyoutubeのAPIを使う
0135nobodyさん2009/03/20(金) 19:03:52ID:???
>>134
自分のサイトでってことでしょう?
0136nobodyさん2009/03/20(金) 19:04:40ID:???
それじゃアマゾンとyoutube内のデータにしか使えないじゃん
01371332009/03/20(金) 20:10:24ID:o14DQ4cS
みなさんありがとうございます
私のサイトで商品の販売をしたいのですが
こういったシステムを作ろうと挑戦したくなりまして考えております
追記で申し訳ございません
0138nobodyさん2009/03/20(金) 20:11:04ID:???
>>133
大抵の言語でできるから安心汁。
もちろんJavaでも。
0139nobodyさん2009/03/20(金) 20:15:30ID:???
なんでもいいでしょう、なんというか質問が的を射てないので前提からわかってなさそうです


ってのが答えな。
0140nobodyさん2009/03/20(金) 20:29:38ID:???
つ『集合知プログラミング』
0141nobodyさん2009/03/20(金) 20:54:56ID:???
>>139
初心者スレでそれはないだろ

まあ>>140が答えかな。言語は何でもよくて
タグとクリック数で半静的に提供するか
クリック数のみを集計するか
購入した数だけを集計するか、などいろいろやり方があると思う
0142nobodyさん2009/03/20(金) 21:09:21ID:???
ブログの記事をsqlに登録するときに
決まりのようなものはあるのでしょうか?

wordpressで使ったmysqlそのままで
別なブログソフト(MTなど)のデータベースとして登録しても
互換性みたいなものはあるのでしょうか
01431332009/03/20(金) 21:18:22ID:o14DQ4cS
皆様ありがとうございます
PHPがこれからも使われると以前言われたので頑張っていきたいと考えています
ありがとうございました
0144nobodyさん2009/03/20(金) 21:23:17ID:???
sqlに登録できるって初めて知ったよ
0145nobodyさん2009/03/20(金) 22:22:39ID:???
まぁ、件名と本文は必須っていう決まり事はあると思うよ
0146nobodyさん2009/03/20(金) 22:50:52ID:???
PHPに通すパスですが、
1.pngってファイルを読み込ませて表示するPHPスクリプトで、
例えば次のように書きました。

<?php
header("Content-type: image/jpg");
$a="../1.png";
readfile($a);
?>

そんで、1.pngを別のフォルダに移動しても
なぜか表示されてしまうのです。

考えた結果、htdocs全体をパスに含めていると、
指定したディレクトリに指定の画像がある場合はそれを読み込んで表示する、
もしなければ、パスで指定されたディレクトリを全部探して、もし
同名のファイルがあればそれを勝手に表示する、
このようになっていると推測したのですが、これであってますか?
0147nobodyさん2009/03/20(金) 22:54:05ID:???
image/jpgなのに1.png(笑)
0148nobodyさん2009/03/20(金) 23:03:34ID:???
>>147
え、、、まじで
そんなところまでそろえないと
出力されないの?

自分のパソコンの中ではjpg指定でpngで
出力されたのですが、

レンタルサーバーにアップロードしてテストしてみたら
出力されないのですが、これが原因ですか?
0149nobodyさん2009/03/20(金) 23:11:42ID:???
あらためてソース。

<?php
header("Content-type: image/png");
$a="./1.png";
readfile($a);
?>

構成、1.php、1.png。
http://example.com/1.png

これは普通に画像が表示される。
ところが、
http://example.com/1.php

これにすると、変な文字化けしたのが表示される。
画像が出てこない。なんで?

自分のパソコンの中でテストしたときには
ちゃんと画像が表示されました。

ところが、レンタルサーバーにアップロードしたら
なぜか表示されないのです。
0150nobodyさん2009/03/20(金) 23:13:33ID:???
mime/typeについてググってから質問しろカス
0151nobodyさん2009/03/20(金) 23:17:07ID:???
readfileがダメならfile_get_contentsでも使ってみろクソガ
0152nobodyさん2009/03/20(金) 23:22:30ID:???
>>151
レンタルサーバー上では、
「何も表示されません」

自分のパソコンでは、
「画像ファイル "http://localhost/1.php" は壊れているため、表示できませんでした。」
0153nobodyさん2009/03/20(金) 23:51:09ID:???
自分のパソコンの中では問題なく表示される。
レンタルサーバーにアップロードすると、表示されなくなる。

なんで?
考えてもわからない。
広告の自動挿入が問題なのか?
拡張子が.phpだとpngは出力できない仕様のサーバーなのか?
画像を出そうとしているのに、文字化けした文字が表示されるってどういうこと?
そのサーバーのmime/typeがpngに対応してないってことかな?
でもいまどきそんなサーバーあるか?
0154nobodyさん2009/03/21(土) 00:01:48ID:???
146 名前:nobodyさん[sage] 投稿日:2009/03/20(金) 22:50:52 ID:???
$a="../1.png";

149 名前:nobodyさん[sage] 投稿日:2009/03/20(金) 23:11:42 ID:???
$a="./1.png";

このへんちがうけどパスの指定ちゃんと合ってるのか?
0155nobodyさん2009/03/21(土) 00:03:42ID:???
>>154
あ、それは合ってます。
.でやってます。
0156nobodyさん2009/03/21(土) 00:04:24ID:???
広告の自動挿入が原因なんじゃないかって思うんですけど、
それであってますか?

ページの一番上部に、自動的にバナー広告がはいる
タイプなんですけど。
0157nobodyさん2009/03/21(土) 00:47:55ID:???
広告の自動挿入の部分を一時的にコメントアウトしてみるとか楽勝だろ…
0158nobodyさん2009/03/21(土) 00:58:25ID:???
広告が入らないレンタルサーバーをせっかく借りたのですが、
public_htmlの外側には、ファイルをアップロードできない仕様でした。

こんなのってありなんですか?
0159nobodyさん2009/03/21(土) 01:19:36ID:???
広告が入らないレンタルサーバーにしたら、あっさりと解決した。
つまり、広告の自動挿入が原因だった。
headerの前に、何かが挿入されてしまうと、だめなようだ。

これでこの問題は解決したが、今度は、新しく借りたサーバーは、
public_htmlの外側に、ファイルを置けないらしい。

こんどはこっちで困ってしまう。
0160nobodyさん2009/03/21(土) 01:38:42ID:???
なんで困るんだ?共用借りてるやつはみんなそれでやってるよ
それがいやなら専用借りるしかない
0161nobodyさん2009/03/21(土) 01:41:29ID:???
>>160
ブラウザからアクセスできないところに
画像を置きたいのです。

現に、さっきまで使っていたサーバーでは
public_htmlの外にファイルを置けました。
0162nobodyさん2009/03/21(土) 01:44:10ID:???
であればpublic_htmlの下にimageみたいなフォルダ作って
そこを.htaccessで直リン全部禁止にしちゃえばいいんじゃね
0163nobodyさん2009/03/21(土) 06:03:30ID:???
それが良いと思うな、そうなった場合みんなそんな感じでやってるはず
0164nobodyさん2009/03/21(土) 06:57:45ID:???
質問

の野郎だな
0165nobodyさん2009/03/21(土) 08:32:17ID:???
public_htmlの外側にファイルを置きたいって要望は十分ありえるぜ。
例えばcsvのようなDBは公開ディレクトリに置きたくないしというか置くべきでないし。

レン鯖ならそれができるところに移れってこった
0166nobodyさん2009/03/21(土) 08:42:02ID:???
>>160は初心者
0167nobodyさん2009/03/21(土) 09:53:12ID:???
csvがDB・・・?
0168nobodyさん2009/03/21(土) 09:56:20ID:???
tsvでもSQLiteでもいいけど。
0169nobodyさん2009/03/21(土) 12:02:26ID:???
>167
DBというカテゴリには入ってると思うぜ。
0170nobodyさん2009/03/21(土) 12:14:39ID:???
データが少しでも集まってればDBだろJK
0171nobodyさん2009/03/21(土) 12:26:42ID:???
>>167
ファイルタイプのDBって知らないのかい?
無知で人気者になりたかったのかい?
0172nobodyさん2009/03/21(土) 13:46:01ID:???
>>169
入ってません
>>170
ファイルをDBのように扱う仕組みがあるだけで
ファイル自体がDBではない
0173nobodyさん2009/03/21(土) 14:07:55ID:???
>172
そりゃcsvファイルそのものがDBだとは誰も言ってないからな
01741732009/03/21(土) 14:12:02ID:???
ああ、すまん。>173を訂正。

システムも含めてDBだと思っていたが、
データの集合体だけでもDBって呼ぶ場合があるのか。
0175nobodyさん2009/03/21(土) 14:17:31ID:???
SQLが使えないもの以外は認めません(キリッ
0176nobodyさん2009/03/21(土) 14:34:22ID:???
DBとDBMSの区別がついてないやつがいるな
csvやtsvもDBだろ。MySQLやOracleはDBMS
0177nobodyさん2009/03/21(土) 15:21:50ID:???
>>167=>>172
0178nobodyさん2009/03/21(土) 15:47:29ID:???
コレクション(配列)やただのテキストファイルだってDBだろ(キリッ
0179nobodyさん2009/03/21(土) 16:11:38ID:???
まあ、ただのテキストファイルを指して「DBです」って言われたら
いやちょっと、とは思うかもしれない。
0180nobodyさん2009/03/21(土) 19:12:48ID:???
>>172
はいっとるわぼけ
0181nobodyさん2009/03/21(土) 19:48:48ID:???
>>176
たしかにちゃんとDBとDBMSを区別するなら、データの集合そのものがDBだから
csvファイルもDBだといえる
が、多くの場合、DMBSの略語としてDBという言葉が使われる
この場合DB=DBMSだからなぁ
0182nobodyさん2009/03/21(土) 22:21:49ID:???
SSLするのってどうやるの?
グーグルクロームの対策です。
0183nobodyさん2009/03/22(日) 11:48:19ID:???
OpenSSLを入れてオレオレ証明書を作成する
■ このスレッドは過去ログ倉庫に格納されています