トップページphp
1002コメント362KB

PHP質問・雑談スレ【初心者お断り(ROM歓迎)】©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん 転載ダメ©2ch.net2016/04/22(金) 08:58:11.47ID:???
PHP関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。

PHP未導入の方や、手取り足取りが必要な初心者の方はくだスレへどうぞ。
【PHP】下らねぇ質問はここに書き込みやがれ 4
http://echo.2ch.net/test/read.cgi/tech/1457792733/

その他リンク
・PHPマニュアル
 https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
 http://ideone.com/
・プログラミングのお題スレ Part8 (求PHPer参戦)
 http://echo.2ch.net/test/read.cgi/tech/1444216746/

このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
 (FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼

このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
 (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
0357nobodyさん2016/08/30(火) 00:50:18.93ID:???
JSでチェックとかHTML5の制約で制限とかはサーバー負荷を減らすためのものなので、
製作者が楽するために使うと痛い目みるよ。

つい先日も、フォームの<select/>タグを完全に信じているせいで、
DBを完全に自由に操作できるクソシステム見たばかりだ。
「ああ、こいつら、本当に馬鹿だったんだ」と思った。
0358nobodyさん2016/08/30(火) 01:29:43.68ID:???
hiddenに入れたIDを完全に信じてるシステムとかの話見たの、このスレだったかな?
向こうだったかな?
0359nobodyさん2016/08/30(火) 01:49:31.40ID:???
唐突に意味不明なことを言い出すアスペ
0360nobodyさん2016/08/30(火) 03:14:01.35ID:???
> サーバー負荷を減らすためのもの
今となってはこれもまた十分な目的になってしまったなぁと、おっさんは思う
0361nobodyさん2016/08/30(火) 06:32:20.77ID:???
どうか真剣に聞いてほしい
秋、大変が起きる
本当なんだ、本当なんだ、本当なんだ
命の危険が迫っている
皆救われて欲しい
どうか皆頼む

http://hirohifumiyamato.blog.fc2.com/
0362nobodyさん2016/08/30(火) 10:49:05.84ID:???
>>357
> JSでチェックとかHTML5の制約で制限とかはサーバー負荷を減らすためのものなので、
> 製作者が楽するために使うと痛い目みるよ。
JSでチェックするからサーバではチェックしないという意味なら、痛い目見るよ。
0363nobodyさん2016/08/30(火) 11:43:14.15ID:???
>>362
ちょっとした入力ミスなどがあるままサーバに来るなよ
という意味じゃないの?
クライアントでやってるチェック以上のチェックを
サーバ側でも普通にやるっしょ
0364nobodyさん2016/08/30(火) 12:21:33.20ID:???
>>362
そう書いてあるじゃん。日本語読めないの?
0365nobodyさん2016/08/30(火) 13:48:55.67ID:???
またこの流れか・・・
0366nobodyさん2016/08/30(火) 15:04:31.45ID:???
お前アホなの?系のレスはもうやめて欲しい
0367nobodyさん2016/08/30(火) 15:24:42.28ID:???
初心者の超基本的な質問にドヤレスするか、他人を罵倒するレスをするためのスレ。
0368nobodyさん2016/08/30(火) 17:13:54.73ID:???
「ゴミクズ」って書いてる奴がいなくなればかなりましになるはず
0369nobodyさん2016/08/30(火) 17:38:42.21ID:???
見るのが嫌ならこのスレに来なくてええんやで
0370nobodyさん2016/08/30(火) 17:40:27.40ID:???
ワッチョイ野郎が癌
さっさと向こうへお帰りいただいてえんやで
0371nobodyさん2016/08/30(火) 20:54:10.63ID:???
>>357
入力画面でのjs使用は各要素を簡単に多彩に操作できて
入力するごとにリアルタイムでメッセージ出せたりできるからです。
(PHPでもできるのかもしれませんが私がそっちの方が詳しくて楽なので)

かつ最終画面のサーバ側でもPHPでチェックします。

jsは無効にされて簡単に成りすまされるからと
PHPと、受け渡しは厳重にと、他スレで忠告されまして。
0372nobodyさん2016/08/30(火) 21:11:53.45ID:???
>jsは無効にされて簡単に成りすまされるからと
ちょっと何を言ってるかわからないですね。
=で結ぶものじゃないでしょうに。
0373nobodyさん2016/08/30(火) 21:14:18.97ID:???
>>358
そもそもhiddenでも信用できないと聞いてsessionに至ったのですが間違ってますか?

>>363
>ちょっとした入力ミスなどがあるままサーバに来るなよ

楽もありますがそれもあります。メール送信直前でも最終チェックしてます。

あるサンプルが、入力画面jsと確認画面phpとで同じチェックをしてて疑問に思い
調べていくうちに今に至ってます。
0374nobodyさん2016/08/30(火) 22:25:08.33ID:???
>入力画面の各チェックが訳あってjsのみなのですが
これ間違いでPHPでも同じチェックしてるんだよね?
同じチェックしてる疑問はもう解決してるんだよね?(上の方で答え出てるけど)

>そもそもhiddenでも信用できないと聞いてsessionに至ったのですが
hiddenは信用できないはあってるけど、POSTで渡してるなら外部から渡せるからそれだけじゃだいたい一緒
0375nobodyさん2016/08/30(火) 22:29:28.83ID:???
問い合わせフォームってただクライアントが入力した内容を確認画面に渡すだけだろ
hiddenは危険って記事をipaが出してるばかりにとりあえずhiddenは使っちゃだめと誤解してるやつがいるが
そんなただやばいものならhiddenなんて仕組みがあるわけないだろ
危険かどうかは内容によるって話だ
今回の件は完全に杞憂
0376nobodyさん2016/08/30(火) 22:44:14.60ID:???
いやhiddenには渡さん
フォームに渡すけど
hiddenなんて問い合わせフォームじゃ使わないってのが正解
セッションもいらない
0377nobodyさん2016/08/30(火) 22:48:36.85ID:???
そのへんは好みかもしれないが
確認画面で編集可能にするのか?readonlyとかもできるけど
0378nobodyさん2016/08/30(火) 22:56:07.71ID:???
他人のメールアドレスを有効と認識してしまう問い合わせフォームで
信用云々ってのがそもそもナンセンスなんだが
下らないとこで躓くより自動返信に心当たりのない方はメールを無視して下さいの文言追加しとけな
0379nobodyさん2016/08/31(水) 01:58:35.77ID:???
単なる問い合わせフォームなんだろ?
間違ったメールアドレスを、書いた奴が悪いだけ

仮に、他人のメアドを書いても、それを君は判別できるのか?
0380nobodyさん2016/08/31(水) 03:55:45.55ID:???
3行目みて判別できると思ったのなら洞察力が足りない
0381nobodyさん2016/08/31(水) 12:57:45.83ID:???
>>375
そんなこと誰も言ってないので話ややこしくしないように
0382nobodyさん2016/08/31(水) 12:58:50.24ID:???
>>379
scriptとかあるだろ
0383nobodyさん2016/08/31(水) 13:12:46.20ID:???
問い合わせフォームでセッションは不要
0384nobodyさん2016/08/31(水) 13:29:10.25ID:???
問い合わせページからのみ問い合わせを受け付けたい場合は、次のようにやればいい。

問い合わせページ:
* session_start()
* 何らかのロジックでトークンを生成
  $token = hash('sha256', session_id());
   => FORMにhiddenで埋め込む

POSTを受け取るページ:
* session_start()
* $token = hash('sha256', session_id())
* $_POST['token']と$tokenを比較
0385nobodyさん2016/08/31(水) 14:15:47.29ID:???
#大前提
・PHP側でもちゃんとチェックしような。値改変だけじゃなくscriptもあるぞ

#hiddenうんぬん
・CSRFが気になるなら384
・簡単な問い合わせだしCSRFが気にならないなら、何もしなくていい

これでだいたい皆意見あってるんじゃない
0386nobodyさん2016/08/31(水) 14:18:53.65ID:???
あ、scriptはBOTからの送信ってことかな。失礼。

でもあれってほとんどは正規にアクセスして送ってない?
CSRF対策とは違う気がするんだけど
0387nobodyさん2016/08/31(水) 16:33:49.33ID:???
CSRF対策(セッション管理が必要)は、リクエストを受け付けたら、
個人情報が表示される、決済が完了する、核が発射される
とか重要なことを決定させるような場面で
なりすました第三者がその決定をできてしまうと困るからやるわけで、
たいして重要でもなければ、成りすまし放題の問い合わせフォームでやるのはあまり意味がない。
自サイトに対する、いたずら(攻撃)サイトを作らせないという意味合いはちょっとあるが、
攻撃者の知識次第でワンタイムトークンを適切に処理するロジック(≒BOT)が組めるわけで、
ハッカー気取りの知恵遅れ以外には効果がない。
反外国企業・サイトならともかく、。そもそもそんなことする物好きもいないだろう。
0388nobodyさん2016/08/31(水) 17:18:02.00ID:???
というか、認証がないシステムで>>384みたいなことをするのは、ほぼ無意味。
認証OKになって初めてセッションを作成するから意味がある。
0389nobodyさん2016/08/31(水) 17:30:25.71ID:???
まあそうだわな
GET contact.phpでセッションが開始されて、正しいtokenを取得できるんじゃ意味ないわ
0390nobodyさん2016/08/31(水) 18:21:45.33ID:???
笑える
0391nobodyさん2016/08/31(水) 19:22:07.89ID:???
>>387
問い合わせを送信すると、確認として入力メッセージが入力メールアドレスに対して自動送信される仕組みだったらとても便利そうだよね
0392nobodyさん2016/08/31(水) 19:35:30.08ID:???
それ普通の問い合わせフォームじゃ
入力者のIPとかも付いてきたりするけどあれは意味がわからん
成りすまし問い合わせで多くメールがきて同一IPだったら
こっちは面倒で関与しないからIP情報渡しとくからそっちで警察に相談してね
みたいな無言の圧力でもかけてるんだろうか
0393nobodyさん2016/08/31(水) 22:34:25.58ID:???
>>384のはさ、CSRF対策じゃなくて、通常は送信後のリロード対策でやるんだよ。

てか、こっちは初心者お断りじゃなかったのか?
向こうの質問のほうがレベル高かったりする気がする。
0394nobodyさん2016/08/31(水) 22:46:37.22ID:???
>>384のはさ、CSRF対策じゃなくて、通常は送信後のリロード対策で「やってるんだよ」。

に訂正しとくね。
>>388の言うように、認証システムの場合は>>384の処理の意味合いが変わってくるからね。

そういう意味では、セッション使っとけば、どっちにも転べるのでお手軽ではあるけど、
非認証のお問い合わせフォームなら別のリロード対策のほうがさらに楽だったりするから、
いちいちセッションなんか使う必要ないね。
0395nobodyさん2016/08/31(水) 22:47:51.44ID:???
>通常は送信後のリロード対策でやるんだよ。
お前の中ではそうなんだろう
レベル低いからお前はこっちのほうがお似合いだな
0396nobodyさん2016/08/31(水) 22:56:54.64ID:???
>>384ってこれでいいの?
hashはsession_idを元にするのではなく乱数で行う
それを$_SESSIONに格納し次のページでhiddenで送られてきたのと比較する
でしょ?
0397nobodyさん2016/08/31(水) 23:09:48.07ID:???
「こっち」 「あっち」 「ワッチョイ」 「IDありなし」
これに拘ってるのがこっちの板を荒らして潰した張本人な
0398nobodyさん2016/09/01(木) 00:25:53.26ID:???
>>396
hiddenで送ったら意味ない
それはそれでやってるんだって

話の元がsessionだからそうしてるだけでしょ(たぶん)
塩かけてからのほうがいいが論点今そこじゃないから
0399nobodyさん2016/09/01(木) 00:29:34.61ID:???
>>398
何に塩かけるかって話なのに、塩かけてからの方がいいってどういうこっちゃ
0400nobodyさん2016/09/01(木) 00:31:41.42ID:???
なんでhiddenで送ったら意味ないの?
サーバの$_SESSIONが改ざんできるわけじゃないのに?
0401nobodyさん2016/09/01(木) 00:47:25.92ID:???
>>384-385で見てたけど>>384はCSRFの話をしてるわけじゃないってことね
0402nobodyさん2016/09/01(木) 06:47:35.91ID:???
やるなら中途半端なコードでなくCSRF対策を兼ねてやるべきだし、
hidden意味ないも意味がわからない。
0403nobodyさん2016/09/01(木) 10:30:14.42ID:???
>>396
> hashはsession_idを元にするのではなく乱数で行う
それでもいいけど、そうやったって何かが改善されるわけではない。
0404nobodyさん2016/09/01(木) 13:11:08.43ID:???
セッションID漏れたら意味がないってのが改善されてんじゃねえか
0405nobodyさん2016/09/01(木) 13:18:56.59ID:???
>>404
基本がわかってなさ過ぎて論外
0406nobodyさん2016/09/01(木) 14:05:18.88ID:???
正しい実装をしてれば問題ないと言いたいだけだろ
そんな当たり前のことを言ってどうする
0407nobodyさん2016/09/01(木) 14:11:30.67ID:???
>>406
何言ってるのかわからん
「意味がない」とは何の意味がなくて、
「問題」とは一体何だ?
0408nobodyさん2016/09/01(木) 14:18:24.12ID:???
httpsを利用して正しい設定をし
セッション発行はログイン後に(再度)行い
セッションを漏らさない実装をするということだ
0409nobodyさん2016/09/01(木) 14:30:29.41ID:???
いや問題点はそこじゃねーよ
推測しやすいから問題なわけで
0410nobodyさん2016/09/01(木) 14:32:18.61ID:???
ちなみにセッションIDは十分推測しにくい
>>384の無駄な点としてはハッシュ関数に通す点だろ
0411nobodyさん2016/09/01(木) 14:34:26.81ID:???
初心者お断りスレじゃないのかよ
0412nobodyさん2016/09/01(木) 14:35:06.91ID:???
>>408
何言ってんの?
ログインなんかないぞ?
0413nobodyさん2016/09/01(木) 15:35:42.87ID:???
>初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
>難しい質問や話題をしなければいけないわけではありません。
>PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。

PHPマニュアルの読み方なんて始めて1ヶ月もあれば余裕だからな
0414nobodyさん2016/09/01(木) 17:33:57.42ID:???
ログインOK=セッション開始
とでも思ってるのか
0415nobodyさん2016/09/01(木) 19:19:40.41ID:???
sessionが必要か否か、hiddenに何入れるか
でなくてsessionを使った場合その最後の処理をどうするか
なんだけど・・・

>>411
その割りにいろいろもめてるようだけど・・・

>>410
hashがなぜ無駄と?
0416nobodyさん2016/09/01(木) 20:09:49.81ID:???
>>414
それがセッションハイジャック防止するための正しい実装
ログイン前にセッション開始してもいいが
その場合ログイン時にセッションを破棄して新しいセッションを開始する
もしくはセッションIDとは別のトークンを使う
0417nobodyさん2016/09/01(木) 20:39:24.73ID:???
>>399
後半
塩かけてからハッシュする
まどうでもいいが
0418nobodyさん2016/09/02(金) 10:08:05.65ID:???
>>416
お前、話の流れが全然読めてないのな
今のセッションが云々の流れに、ログインは一切関係ないから
0419nobodyさん2016/09/02(金) 11:24:44.26ID:???
塩かけるってなんじゃ?
0420nobodyさん2016/09/02(金) 13:34:06.91ID:???
>>419
おい、ここは素人スレじゃないと何度も言ってるだろう。
その意味が分からない時点で、おまえはダメグラマだ。
0421nobodyさん2016/09/02(金) 13:58:45.89ID:???
>>419
hash saltでググれ

あと「塩かける」という表現ダサすぎwww
0422nobodyさん2016/09/02(金) 14:40:22.36ID:???
>>420
罵倒しかできんのか、お前は
0423nobodyさん2016/09/02(金) 14:42:29.77ID:???
>>418
ログインって出してる>>414に話の流れとか関係ないだろ
0424nobodyさん2016/09/02(金) 14:55:42.01ID:???
>>423
ログイン関係ないのにログインがどうこういう奴がいたから、>>414じゃねーのと思っただけだ
0425nobodyさん2016/09/02(金) 15:08:13.86ID:???
それはそれ これはこれ
0426nobodyさん2016/09/02(金) 15:21:29.35ID:???
質問者お帰りいただいて384いじる流れにうつってんだろ
0427nobodyさん2016/09/02(金) 15:33:31.00ID:???
>>422
使うなら「罵倒」の意味くらい調べてくればいいのに。

>>425
悪かないね妻の肌って言ったらぶっ飛ばすところだった。
0428nobodyさん2016/09/02(金) 15:44:12.87ID:???
セキュリティ関連のスレでもあればいいのにな
PHPに限った話題でもあるまいし
毎度よく伸びるわ
0429nobodyさん2016/09/02(金) 15:50:12.74ID:???
ゆとりFWと違ってそのままで組むことが多いPHPは
セキュリティ意識が他よりどうしても高くなるからだろ
他のスレじゃこんな話題流行りもしない
0430nobodyさん2016/09/02(金) 15:51:50.22ID:???
>>384とログインに何の関係が?
0431nobodyさん2016/09/02(金) 15:53:13.95ID:???
セキュリティwww
0432nobodyさん2016/09/02(金) 15:57:49.61ID:???
セキュリティ!!!!!
0433nobodyさん2016/09/02(金) 16:03:14.89ID:???
塩かけろ!!!www
0434nobodyさん2016/09/02(金) 16:05:13.94ID:???
ペチパー同士の会話

A 昨日寒かったね
B 昨日の御飯は蟹玉だったよ
A 今日は暖かいわー
B 今日は何食べようか?
A そろそろ衣替えかな
B そろそろお昼休み終わっちゃうね
0435nobodyさん2016/09/02(金) 17:05:13.37ID:???
>>429
ここで間抜けな議論してる奴の独自実装より、セキュリティ対策入りのFW使った方が100万倍まし
0436nobodyさん2016/09/02(金) 23:09:20.06ID:???
受け側で、送り側の身元確認でしょ
別に意味無くもないし無駄とも思えないが
してない人は代わりに何してるのだ?
0437nobodyさん2016/09/02(金) 23:21:34.87ID:???
お祈り
0438nobodyさん2016/09/03(土) 00:03:14.33ID:???
>>435
何もわからないでただ使うよりは、ちゃんと知っておいたほうがいいけどな。
アマならともかく、業務経験ある連中がXSSってなんですか〜?とか聞き出す時代だからな。
0439nobodyさん2016/09/03(土) 10:18:18.29ID:???
>>421
会話で使わない?
使わねーよと言われても、あ、そ、としか言えんが
0440nobodyさん2016/09/03(土) 11:22:44.78ID:???
使わねーけど、たとえ初めて聞いたとしても
それで意味分かんなかったら無能な事に変わりはないからいいんじゃね?
ダサかろうが、なかろうが、どっちでも。
0441nobodyさん2016/09/03(土) 11:28:17.58ID:???
>>439
あ、そ、

フフッwてなった
0442nobodyさん2016/09/03(土) 22:30:48.98ID:???
無理に日本語にしてもわかりにくいだけ
salt加えるでいいんじゃね
何言ってんのコイツ?ていう感じよりも隠語と認識されて読み飛ばされるぞ
0443nobodyさん2016/09/03(土) 23:42:02.88ID:???
読み飛ばされてもいいんじゃね?
それでわからん人にそれ以上説明いらんし(ここでは)
0444nobodyさん2016/09/03(土) 23:47:19.08ID:???
自分よがりのオナニーならブログでな
0445nobodyさん2016/09/04(日) 13:29:44.67ID:???
他に分かる人がいるものをオナニーとは呼ばんよな。
どうしてもオナニーであったと思いたい奴がいるけど、
意味分からなかったのかな?
0446nobodyさん2016/09/04(日) 14:42:20.84ID:???
上でhashのはなし出てたら塩かけるくらい伝わるしょ
0447nobodyさん2016/09/04(日) 14:53:58.57ID:???
普通はね。普通じゃない人が何人か紛れ込んでるのさ。素人お断りのスレに。
0448nobodyさん2016/09/04(日) 18:29:06.18ID:???
いいからお前はワッチョイ帰れよ
0449nobodyさん2016/09/04(日) 18:59:45.74ID:???
意味分からなくて悔しかったのだろうな。で、

hashがなぜ無駄?パスワードではないから?
0450nobodyさん2016/09/04(日) 19:29:53.65ID:???
>>448
紛れ込んだ人! 紛れ込んだ人じゃないですか。あなたw
0451nobodyさん2016/09/04(日) 19:37:11.04ID:???
セッションIDがすでに複雑な文字列だからだろ
0452nobodyさん2016/09/04(日) 19:44:04.18ID:???
>セッションIDがすでに複雑な文字列だからだろ

こっから説明しなきゃいけない>>449が可哀想だけど、
俺、めんどくさいから傍観するね。

ほんとここ、素人お断りスレかよ?
0453nobodyさん2016/09/04(日) 20:23:35.03ID:???
またこのキチガイ戻ってきてんのか?
0454nobodyさん2016/09/04(日) 20:29:14.97ID:???
>>452
お前出禁な初心者は二度と来るなよ
0455nobodyさん2016/09/04(日) 20:36:59.90ID:???
流れよくわからんが、今の議題は、>>384
>問い合わせページからのみ問い合わせを受け付けたい場合
でいいのか?
0456nobodyさん2016/09/04(日) 20:46:15.84ID:???
>>454
俺が来ると、お前ちゃんが霞んで発言権なくなっちゃうもんねw
やだー、かわいいーw 初心者が他人の事初心者呼ばわりしてるのーw
■ このスレッドは過去ログ倉庫に格納されています