【PHP】下らねぇ質問はID出して書き込みやがれ 121
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/07/25(水) 21:30:09.38ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 120
http://kohada.2ch.net/test/read.cgi/php/1340275027/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0037nobodyさん
2012/07/26(木) 17:21:26.83ID:TjRZ3BtP巣に帰れボケ
0039nobodyさん
2012/07/26(木) 17:30:16.41ID:???こっちで教えてやる
0040nobodyさん
2012/07/26(木) 18:47:13.02ID:???0041nobodyさん
2012/07/26(木) 19:15:35.08ID:???0042nobodyさん
2012/07/26(木) 20:22:09.11ID:???> どういう正規表現のコードを書けばいいのでしょうか?
正規表現についての質問ならば、>>39 が書いてるね。
0043nobodyさん
2012/07/26(木) 20:37:19.31ID:???正規表現で厳密に捉えるのは無理
0044nobodyさん
2012/07/26(木) 20:39:28.54ID:???ちゃんとしたHTMLが前提な感じがする
0045nobodyさん
2012/07/26(木) 21:03:14.31ID:???0046nobodyさん
2012/07/26(木) 21:43:09.02ID:???【PHP】気軽にPHP質問スレ
http://kohada.2ch.net/test/read.cgi/php/1343015189/
004736
2012/07/26(木) 22:05:24.63ID:Oe0470hh無理そうなので諦めます。お騒がせしました
0048nobodyさん
2012/07/26(木) 22:07:54.28ID:???あほだな
まぁ諦めるかどうかは勝手だが
0049nobodyさん
2012/07/26(木) 22:08:21.51ID:kczABB77プラットフォームはUNIXです
0050nobodyさん
2012/07/26(木) 22:10:16.81ID:TjRZ3BtPセッションにデータ保存しといて使おうと思ってます。
でもセキュリティがちょっと心配なので
session_regenerate_id使って毎回セッションIDを変えて、セキュリティを高めようと思うのですが
この方法アリですか?
0051nobodyさん
2012/07/26(木) 22:12:09.43ID:???まぁ制御文字があればバイナリって判断でいいんじゃないの
0053nobodyさん
2012/07/26(木) 22:17:03.88ID:???0054nobodyさん
2012/07/26(木) 22:17:32.33ID:???0055nobodyさん
2012/07/26(木) 22:18:42.10ID:TjRZ3BtPDBつくるよ
ありがとな!
005649
2012/07/26(木) 22:23:55.33ID:kczABB77バイナリなら必ずぬるぽって入りますかね・・・?
0057nobodyさん
2012/07/26(木) 22:24:17.14ID:???0059nobodyさん
2012/07/26(木) 22:27:56.63ID:???0060nobodyさん
2012/07/26(木) 22:28:28.73ID:???聞いてばかりだと時間の無駄になるぞ
本当に躓いた時だけに聞くようにするといい
一般的かどうかとかそういうのは気になるかもしれないが
そういうの考えるのはまずは物ができてからだ
0061nobodyさん
2012/07/26(木) 22:32:42.54ID:???大きな指標にはなるが完全ではない
http://d.hatena.ne.jp/oooooooo/20050113/p5
0062nobodyさん
2012/07/26(木) 22:50:09.05ID:???006349
2012/07/26(木) 23:00:53.12ID:kczABB77ありがとございます。奥深すぎですね
0065nobodyさん
2012/07/26(木) 23:30:24.26ID:???0066nobodyさん
2012/07/26(木) 23:33:03.18ID:???前もって分かるアンチパターン実践とかアホかと
0067nobodyさん
2012/07/26(木) 23:33:20.89ID:???0068nobodyさん
2012/07/26(木) 23:36:22.51ID:TjRZ3BtPセッションってどんなときに使うんですか?
クッキーさえあればログイン処理ってできますよね?
いまいちセッションの使い時がわかりません。
0069nobodyさん
2012/07/26(木) 23:43:01.26ID:???例えば、ログイン済み状態でどのページにもユーザー名を表示するとする
ページ切り替えのたびに、データベースからユーザー名を検索するのは無駄なので
セッションデータ内にユーザー名をキャッシュしたりする
クッキー内に入れておくと、ユーザーが変更できてしまう
変更されて困るデータや個人情報など重要な情報をクッキーに入れてはいけない
0070nobodyさん
2012/07/26(木) 23:43:24.75ID:???0071nobodyさん
2012/07/26(木) 23:46:14.83ID:???でも手間じゃん
0073nobodyさん
2012/07/27(金) 01:02:56.40ID:???007473
2012/07/27(金) 01:04:06.73ID:???0075nobodyさん
2012/07/27(金) 01:06:44.81ID:???0076nobodyさん
2012/07/27(金) 01:19:09.92ID:???0078nobodyさん
2012/07/27(金) 01:32:12.56ID:???0079nobodyさん
2012/07/27(金) 01:51:29.70ID:???0080nobodyさん
2012/07/27(金) 08:11:37.25ID:pwFITbw+もう一つ教えてください。
クッキーに重要な情報は入れないことは理解しました。
ではセッションにデータを入れておくのと、DBにデータを入れておくのでは何が違うのでしょうか?
どちらかにセキュリティに問題があるならその危険性をご教授いただきたいです。
0081nobodyさん
2012/07/27(金) 09:23:39.58ID:???・そのユーザーのみに関係するデータ
・本体がデータベースに入っているので、消えても構わないデータ
で、これに上記のユーザー名が該当する
セッションデータは、データベースに入っているユーザー名のキャッシュの役割
Cookieを消した場合など、セッションが消えてもデータベース内のユーザー名は消えない
セッションとデータベースのセキュリティはプログラマー次第
用語を挙げとくので調べなさい
・セッションハイジャック
・SQLインジェクション
http://note.openvista.jp/2008/php-security-memo/
0082nobodyさん
2012/07/27(金) 09:56:01.19ID:???なるほど〜!
こんな怠け者に何度も回答していただいてありがとうございます!
URLのほうについても熟読させていただきます!
0083nobodyさん
2012/07/27(金) 14:12:22.79ID:pwFITbw+例えばニコ動ならブラウザ閉じたりしてもまだニコ動に行けばログインしたままの状態になってますよね?
この実装方法がわかりません。
たぶんクッキーにログイン中である情報を書き込んでいるんだと思いますが、
クッキーにあまり重要な情報は入れられないのでどういう情報をクッキーに残しておくのかわかりません。
単純にPHPSESSIDだけ書き込んでおいて、
セッションが残っていればログイン中であると判断する、みたいな感じでいいんでしょうか?
でもそれだとセッションの有効期限を随時延長しなければなりませんが、
その方法も分かりませんでした。
かなりうざがられてると思いますが、ご回答よろしくお願い致します。
0084nobodyさん
2012/07/27(金) 14:28:07.48ID:???自分で管理したほうがよさそうだ。
0085nobodyさん
2012/07/27(金) 14:35:29.64ID:???本を買って読みなさいよ
ネットで集められる情報なんて切れ端のものばかりだし
本なら体系的に基本から勉強できるよ
008681
2012/07/27(金) 14:56:43.17ID:???本を買いなさい
複数買って読み比べるのがベター
0087nobodyさん
2012/07/27(金) 15:01:01.79ID:pwFITbw+ちゃんと俺がやりたいようなこと載ってるかな〜
ありがとうございました
0088nobodyさん
2012/07/27(金) 16:28:38.87ID:???その程度ならいくらでも載ってるよ。
ただ、カンナを木を削って寸法調整に使うものと勘違いするような
頭の硬さがあると何読んでもアウトだろうけど。
0092nobodyさん
2012/07/27(金) 23:40:33.05ID:???0093nobodyさん
2012/07/27(金) 23:52:38.04ID:???0094nobodyさん
2012/07/28(土) 00:05:04.16ID:???0095nobodyさん
2012/07/28(土) 00:17:31.05ID:???0096nobodyさん
2012/07/28(土) 14:41:41.60ID:???0097nobodyさん
2012/07/28(土) 15:15:10.43ID:???0098nobodyさん
2012/07/28(土) 15:24:37.93ID:esfgE5V2完璧は無理だと思うので出来るだけ意味がわかる程度に変換されればよいのですが
なんか関数あったら教えて下さい
010098
2012/07/28(土) 15:34:26.87ID:esfgE5V2用意したら使えるものがあるんですか?
用意する必要がないとよいのですがやっぱきついのかな?
専鯖なので標準バンドルじゃなくても全然いいです
0101nobodyさん
2012/07/28(土) 15:36:51.91ID:???0102nobodyさん
2012/07/28(土) 15:37:23.86ID:???010498
2012/07/28(土) 15:46:55.77ID:esfgE5V2これはよさそうですね
PHPのモジュールが用意されてないようなのでちょっと残念ですが
(探せばありそうですが)
この部分だけPerlでやるのもいいですが
コンソールで使えるみたいなのでPHPでもいけそうですね
どうもありがとうございました
0105nobodyさん
2012/07/28(土) 15:49:41.74ID:???010698
2012/07/28(土) 15:57:42.03ID:esfgE5V2こういう類のものは通信コストがかかってレスポンスが返ってこない危険性があるのと
使用回数の上限がある可能性があるので出来れば避けたいところです
ご紹介ありがとうございました
0108nobodyさん
2012/07/28(土) 18:11:15.75ID:3yuInUepecho "aaa";
return
?>
<!doctype・・・・
ってhtmlを書く前にPHPのコードを書く場合ってよくあると思いますが、
phpのコード内でreturnするとそこで出力がとまってしまって下のhtmlが出力されません。
でもエラーが発生したときはphpの処理を途中で止める必要があるのでreturnは外せないんですが、
止めつつもhtmlを出力するにはどうすればいいんでしょうか?
0109nobodyさん
2012/07/28(土) 18:17:18.02ID:???0110nobodyさん
2012/07/28(土) 18:21:56.71ID:???0111nobodyさん
2012/07/28(土) 18:23:10.15ID:???0112nobodyさん
2012/07/28(土) 18:23:56.21ID:3yuInUephtmlはphpのコードより後ろに書いてるんで無理です
0113nobodyさん
2012/07/28(土) 18:30:40.17ID:???phpで出力すればいいだけでしょ
初心者のうちは仕方ないけど
そもそもそういう構造になること自体がおかしいんだよ
0114nobodyさん
2012/07/28(土) 18:32:50.62ID:???0115nobodyさん
2012/07/28(土) 18:36:38.86ID:3yuInUepめんどくせ
サンキュな
0117nobodyさん
2012/07/28(土) 18:44:40.42ID:???なんか態度がでかいからやめた
0118nobodyさん
2012/07/28(土) 18:51:32.58ID:3yuInUep私が悪かったです
よかったら教えてください
お願いします!
0119nobodyさん
2012/07/28(土) 18:53:43.17ID:???0120nobodyさん
2012/07/28(土) 18:58:53.72ID:3yuInUep心の中では本当に感謝してます
とりあえず関数化してみますわ
0121nobodyさん
2012/07/28(土) 19:01:27.21ID:???return
↓
header('Location: error.php');
0122nobodyさん
2012/07/28(土) 19:06:33.49ID:3yuInUepえ?
これじゃerror.phpに移動しちゃって下のhtmlは出力されない気が・・
ちょっとやってみます
あざっす!
0123nobodyさん
2012/07/28(土) 19:09:06.12ID:???それか同じスクリプトで後ろに?error=1とかつけて
getで処理わけたり
0124nobodyさん
2012/07/28(土) 19:11:46.01ID:3yuInUepそういえばパラメータも使えましたね
どうもイライラしてると何も思いつかなくって。
本当にありがとうございました
0125nobodyさん
2012/07/28(土) 20:01:23.66ID:???<?php
...
//return
goto end;
...
end:
?>
<!doctype ...
0126nobodyさん
2012/07/28(土) 20:02:05.42ID:KrNBno09画像をアップロードする機能を作りました。
(記事ナンバー).jpg というような 形式で
ファイルがどんどんアップロードされるようにしています。
ここで、ひとつ思ったのが
アドオンのwebDeveloper 等で、hiddenの値を操作することができますが
hidden の値を変えて つまり(記事ナンバー) の値を変えて
本来 01.jpg とアップされるところを 04.jpg 等と自由に変えられて
しまうことはないのか? ということです。
というか実際やってみたら変えれました。
そしてすでにある (記事ナンバー)にすると上書きされてしまいました。
つまり、過去にすでにアップされた画像を
全く別の画像に書き換えれてしまうということです。
この問題に対してなにかしらどのようなセキュリティ対策が考えられるでしょうか?
ちなみに、画像の上書き保存をできないようにするのは
画像を表示する側の仕様上あまりしたくありません。
0127nobodyさん
2012/07/28(土) 20:04:53.62ID:3yuInUepgoto文ってPHP5.4ぐらいからじゃないと使えませんよね?
ったく関数は良いのたくさんあるのにgoto文がいままでなかったってどういうこったよ
まあgoto文はプログラマをダメにすると思うがな
2重ループとかを抜けるときだけ使えばいいけどな
0128nobodyさん
2012/07/28(土) 20:05:48.13ID:???クライアント任せにしないでサーバ側でリネームして下さい
連番にしてどっかに最終番号の情報もっておいて
それに+1した名前をつけるとか
アップロードを受け付けた時点のmicrotimeにsalt加えたものをハッシュ化したものを名前にするとか
0129nobodyさん
2012/07/28(土) 20:15:44.56ID:KrNBno09ということは、保存時のファイル名を<img src="">記述時、
再び呼び出すためにデータベースに保存しないとダメですね。
うーん、やっぱデータベースがいるか。
0131nobodyさん
2012/07/28(土) 20:23:21.57ID:???ちゃんとロックして整合性保たせることだけ注意
>アップロードを受け付けた時点のmicrotimeにsalt加えたものをハッシュ化したものを名前にする
この手法じゃそもそもいらないけどね
サーバ側に同名のファイル名があったら
なんか適当な文字を加えてリネームする
ってのを重複しないまで繰り返すとか
まぁ方法はいろいろあるがとりあえずクライアント任せにはしない
0132nobodyさん
2012/07/28(土) 20:31:56.48ID:KrNBno09回答ありがとうございます。
一応、使用してるフレームワーク(codeigniter)に
同じ名前が存在した場合、上書きを許さない機能がついてるんですが、
そうなると、ハードコーディングじゃなくてで、画像のURLを書きたい場合
どないして呼び出すねん っちゅう話やねん。
なんです。
0133nobodyさん
2012/07/28(土) 20:44:34.80ID:???UUIDを使えばいいだけ。
自分でコード作るな。
>アップロードを受け付けた時点のmicrotimeにsalt加えたものをハッシュ化したものを名前にする
microtimeが同じなら、salt加えてハッシュ化しても
microtimeの値をそのまま使っても同じだろ。
0134nobodyさん
2012/07/28(土) 21:00:52.86ID:KrNBno09回答有り難うございます。
以下のロジックで作成することにしました
画像 アップロード
↓
[アップロード時の、ID]+[microtim].jpg
↓
同時にデータベースにファイル名をインサート
↓
<img src="<?= $row['ファイル名'] ?>"> でよびだし
0136nobodyさん
2012/07/28(土) 21:15:32.99ID:???しばらくおまちください
■ このスレッドは過去ログ倉庫に格納されています