私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ【PHP】下らねぇ質問はID出して書き込みやがれ 103
php スレッド一覧へ / php とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
ID非表示派のレスには。←が付いてるのは偶然の一致なのか?
おもしれぇなこのスレwwwwwwwwwwwwwwwwwwww
おもしれぇなこのスレwwwwwwwwwwwwwwwwwwww
おまいら何回同じ議論したら気が済むの?
ローカルルール決めたって拘束力無いんだから意味無いじゃん
ローカルルール決めたって拘束力無いんだから意味無いじゃん
621以後の全部荒らしですから。
なんでスルーできないんですか?
なんでスルーできないんですか?
>>656
質問ならIDを出すように。
質問ならIDを出すように。
ログイン処理のある会員サイトを作っています
いろんな意見を聞きたいんですが、フォームでのトークン処理ってどうやってますか?
(長文です、すみません)
自分は入力~確認~登録(DB処理)というフォームの流れで、
確認画面に進んだ時にPOST値を全部セッション($postParams)に入れて登録画面に持ち込んで
セッションから引き出した値をDB処理しています。
が、ワンタイムトークンが複数画面でのフォーム登録処理を出来なくなる原因と気付いて、
(※hiddenのトークンとセッションのトークンをDB処理直前で比較するロジックの場合。
新しいウィンドウのトークンでセッションが上書きされるので)
ログイン時に作ったトークンを使い回すことにしました。
すると、問題が出てきました
フォームAで確認画面に進んだあと、別ウインドウで開いたフォームBを確認画面まで進ませると、
$postParamsの値がフォームBの内容で上書きされるので、フォームAを「登録」した時に
正しくない(Bの)パラメータで登録されてしまうんです。
当たり前ですよね、ワンタイムトークンだった時は、ここで実際の登録処理が行われる前に
「トークンエラー」として処理してたんだから。
どうしたら良いんでしょうか?
ワンタイムトークンに戻そうかと思ったけど、それだと複数フォームの平行処理が出来ないままです。
post値をセッション化せずhiddenに入れる方法を考えましたが、それもちょっと抵抗が…
(処理がかなり面倒なので)
トークン処理とフォームの値の引き回しどうやってるか、参考意見貰えると嬉しいです
よろしくお願いします
いろんな意見を聞きたいんですが、フォームでのトークン処理ってどうやってますか?
(長文です、すみません)
自分は入力~確認~登録(DB処理)というフォームの流れで、
確認画面に進んだ時にPOST値を全部セッション($postParams)に入れて登録画面に持ち込んで
セッションから引き出した値をDB処理しています。
が、ワンタイムトークンが複数画面でのフォーム登録処理を出来なくなる原因と気付いて、
(※hiddenのトークンとセッションのトークンをDB処理直前で比較するロジックの場合。
新しいウィンドウのトークンでセッションが上書きされるので)
ログイン時に作ったトークンを使い回すことにしました。
すると、問題が出てきました
フォームAで確認画面に進んだあと、別ウインドウで開いたフォームBを確認画面まで進ませると、
$postParamsの値がフォームBの内容で上書きされるので、フォームAを「登録」した時に
正しくない(Bの)パラメータで登録されてしまうんです。
当たり前ですよね、ワンタイムトークンだった時は、ここで実際の登録処理が行われる前に
「トークンエラー」として処理してたんだから。
どうしたら良いんでしょうか?
ワンタイムトークンに戻そうかと思ったけど、それだと複数フォームの平行処理が出来ないままです。
post値をセッション化せずhiddenに入れる方法を考えましたが、それもちょっと抵抗が…
(処理がかなり面倒なので)
トークン処理とフォームの値の引き回しどうやってるか、参考意見貰えると嬉しいです
よろしくお願いします
とりあえず画面遷移とセッションのリードライトの流れを書いてよ
UMLでもいいし落書きでもいい
何を問題としてるのかよーわからん
UMLでもいいし落書きでもいい
何を問題としてるのかよーわからん
>>664
ありがとうございます
これでわかるでしょうか?
同時に複数のウィンドウでフォームを開いて、トークンチェックしつつ(csrf対策で)
それぞれのフォームから入力された正しい値を登録させたいのです。
急いで書いたので誤字とかあるかも知れないです
確認画面でのパラメータのセッションへの格納方法は、実際は
$_SESSION['postParam']=$_POST; です
ありがとうございます
これでわかるでしょうか?
同時に複数のウィンドウでフォームを開いて、トークンチェックしつつ(csrf対策で)
それぞれのフォームから入力された正しい値を登録させたいのです。
急いで書いたので誤字とかあるかも知れないです
確認画面でのパラメータのセッションへの格納方法は、実際は
$_SESSION['postParam']=$_POST; です
今思いついたんですが、トークンは固定トークンのままにして
セッションへのパラメータの格納方法を変えればいいんでしょうか?
1)入力画面でウインドウID(乱数)を用意する <input type="hidden" name="winID" value="xxxxx" />
2)確認画面でウインドウIDをキーにして、セッションにパラメータを全部入れる
$_SESSION['postParam'][$_POST['winID']]=$_POST;
hiddenにはウインドウIDを保持する <input type="hidden" name="winID" value="{$_POST['winID']}" />
3)if($_SESSION['token']==$_SESSION['postParam'][$_POST['winID']]['token']){//DB処理}
うーん、スレ汚しすみません。意見貰えると嬉しいです
セッションへのパラメータの格納方法を変えればいいんでしょうか?
1)入力画面でウインドウID(乱数)を用意する <input type="hidden" name="winID" value="xxxxx" />
2)確認画面でウインドウIDをキーにして、セッションにパラメータを全部入れる
$_SESSION['postParam'][$_POST['winID']]=$_POST;
hiddenにはウインドウIDを保持する <input type="hidden" name="winID" value="{$_POST['winID']}" />
3)if($_SESSION['token']==$_SESSION['postParam'][$_POST['winID']]['token']){//DB処理}
うーん、スレ汚しすみません。意見貰えると嬉しいです
やってる事はステートフルなフローだからワンタイムの方は正常でしょ
金融系の処理なんかを見ればわかるけどそう言うケースではエラー出してセッションクリア後、最初からやり直させる
後、そのケースだとトークンはcsrf対策にはならん
トークンで対応出来るのはgetで登録出来るフローのみ
ブログでこの辺を勘違いしてる人間が多すぎる
本もね
金融系の処理なんかを見ればわかるけどそう言うケースではエラー出してセッションクリア後、最初からやり直させる
後、そのケースだとトークンはcsrf対策にはならん
トークンで対応出来るのはgetで登録出来るフローのみ
ブログでこの辺を勘違いしてる人間が多すぎる
本もね
入力フォーム
<?php
$_SESSION['token_a'] = $token;
?>
<input type="text" name="user[name]" value="">
<input type="text" name="user[code]" value="">
<input type="hidden" name="token[A]" value="<?php echo $token ?>">
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
確認フォーム
<?php
if( $_SESSION['token_a'] != $_POST['token']['a'] ){
//入力へリダイレクト
}
?>
<input type="hidden" name="user[name]" value="<?php echo $_POST['user']['name'] ?>" />
<input type="hidden" name="user[name]" value="<?php echo $_POST['user']['code'] ?>" />
<input type="hidden" name="token[A]" value="<?php echo $_POST['token']['a'] ?>">
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
登録フォーム
<?php
if( $_SESSION['token_a'] != $_POST['token']['a'] ){
//入力へリダイレクト
}
//値チェック
//登録
//登録完了
//セッション削除
?>
<?php
$_SESSION['token_a'] = $token;
?>
<input type="text" name="user[name]" value="">
<input type="text" name="user[code]" value="">
<input type="hidden" name="token[A]" value="<?php echo $token ?>">
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
確認フォーム
<?php
if( $_SESSION['token_a'] != $_POST['token']['a'] ){
//入力へリダイレクト
}
?>
<input type="hidden" name="user[name]" value="<?php echo $_POST['user']['name'] ?>" />
<input type="hidden" name="user[name]" value="<?php echo $_POST['user']['code'] ?>" />
<input type="hidden" name="token[A]" value="<?php echo $_POST['token']['a'] ?>">
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
登録フォーム
<?php
if( $_SESSION['token_a'] != $_POST['token']['a'] ){
//入力へリダイレクト
}
//値チェック
//登録
//登録完了
//セッション削除
?>
セッション削除はtoken[A]だ。
別画面はtoken[B]にすればいいんじゃね
別に同一セッションキー使う必要なくね?
別画面はtoken[B]にすればいいんじゃね
別に同一セッションキー使う必要なくね?
あのさ、
何で入力フォームでトークンを発行してるの?
実登録は確認後なんだから意味ないと思うんだけど…
何で入力フォームでトークンを発行してるの?
実登録は確認後なんだから意味ないと思うんだけど…
え?なんで??
token発行
入力画面表示
↓
token存在確認&同一か確認
確認画面表示
↓
token存在確認&同一か確認
↓
登録
↓
登録完了
token削除
どこがおかしいのかな?www
token発行
入力画面表示
↓
token存在確認&同一か確認
確認画面表示
↓
token存在確認&同一か確認
↓
登録
↓
登録完了
token削除
どこがおかしいのかな?www
おかしくねーだろ
一回登録されたら消えるんだから
確認画面をurl直接入力しても確認画面表示されないし、
完了後戻るで確認画面に行ってsubmitしてもセッションのtoken消えてるし
何が問題なんだよ?
一回登録されたら消えるんだから
確認画面をurl直接入力しても確認画面表示されないし、
完了後戻るで確認画面に行ってsubmitしてもセッションのtoken消えてるし
何が問題なんだよ?
設計がおかしいと言ってる
tokenはmd5又はsha1を使用したとして入力→確認の遷移の度にハッシュ作成のコストと32-40byte無駄なPOSTをおくるわけ
大規模なWebサービスでそれやる人間がいたら俺は駄目な奴の烙印を押す
理由はtokenが何の為にあるのか理解せず使用しているから
tokenはmd5又はsha1を使用したとして入力→確認の遷移の度にハッシュ作成のコストと32-40byte無駄なPOSTをおくるわけ
大規模なWebサービスでそれやる人間がいたら俺は駄目な奴の烙印を押す
理由はtokenが何の為にあるのか理解せず使用しているから
>>675
じゃあ俺はもう何年もダメな奴の烙印を押され続けてる事になるなwwww
じゃあ俺はもう何年もダメな奴の烙印を押され続けてる事になるなwwww
卑屈になるなよ
意味もわからず風潮のみで使用して無駄なコストを払ってるのは大手サイトでもよくある事
理由無くjsをheadで定義するサイトなんてごまんとあるしね
意味もわからず風潮のみで使用して無駄なコストを払ってるのは大手サイトでもよくある事
理由無くjsをheadで定義するサイトなんてごまんとあるしね
まあ、HTTPも色々便利になり過ぎたから、できるものなら一度全否定するのも
いいかもね、ただ、へたすると社会が回らなくなるくらい浸透しちゃったからなあ。
いいかもね、ただ、へたすると社会が回らなくなるくらい浸透しちゃったからなあ。
トークン理解した。
それなら入力データをトークンをキーに複数
セッションに保存すればいいな
それなら入力データをトークンをキーに複数
セッションに保存すればいいな
たくさんの意見ありがとうございます。ほんと感謝します
>>668
>後、そのケースだとトークンはcsrf対策にはならん
>トークンで対応出来るのはgetで登録出来るフローのみ
これはどういうことですか?
postでの送信にトークンはcsrf対策にならないってことですか?
>>669
if( $_SESSION['token_a'] != $_POST['token']['a'] ){ の検証処理ですが、
フォームごとにトークン格納用セッションを作るわけですよね。
この処理だと同じフォームのウィンドウを複数開いた時に、
先に開いた方のフォームが確認ページで不正処理されることになりませんか?
全く別のフォームを開いた時にしか機能しないんではと。。
登録後のセッション削除処理完全に忘れてました、気付かせてくれてありがとうございます。
>>673
たしかに確認画面でのトークン生成で十分ですね。
入力画面開くたびに余分な32バイト負荷かけるなんて考えもしませんでした
ありがとうございます
673さんはどうやって「複数画面(フォーム)での平行処理&CSRF対策」やってるんでしょうか?
>>668
>後、そのケースだとトークンはcsrf対策にはならん
>トークンで対応出来るのはgetで登録出来るフローのみ
これはどういうことですか?
postでの送信にトークンはcsrf対策にならないってことですか?
>>669
if( $_SESSION['token_a'] != $_POST['token']['a'] ){ の検証処理ですが、
フォームごとにトークン格納用セッションを作るわけですよね。
この処理だと同じフォームのウィンドウを複数開いた時に、
先に開いた方のフォームが確認ページで不正処理されることになりませんか?
全く別のフォームを開いた時にしか機能しないんではと。。
登録後のセッション削除処理完全に忘れてました、気付かせてくれてありがとうございます。
>>673
たしかに確認画面でのトークン生成で十分ですね。
入力画面開くたびに余分な32バイト負荷かけるなんて考えもしませんでした
ありがとうございます
673さんはどうやって「複数画面(フォーム)での平行処理&CSRF対策」やってるんでしょうか?
ひろみちゅの記事でも読んどけ
http://takagi-hiromitsu.jp/diary/20060409.html
http://takagi-hiromitsu.jp/diary/20060409.html
>>690,692
ありがとうございます
それ両方とも読んだんですが、例に挙がってる確認画面でのpost値の保持が
hidden形式なので(高木さん)、自分のセッションに丸ごと入れるやり方だと
まんま流用できるとこまでいかないんです。
「まんま流用しないで自分で応用しろよ」て話だと思いますが
それで考えた方法が>>666です
入力~確認~登録 のフォームでの確認画面以降からのデータの持ち回し、
みんなhiddenでやってるわけじゃないですよね。
自分みたいにセッションに入れてる人もいるはずで、その場合どうやって
「複数画面(フォーム)での平行処理&CSRF対策」やってるんでしょうか?
ほんと長々すみません。
ありがとうございます
それ両方とも読んだんですが、例に挙がってる確認画面でのpost値の保持が
hidden形式なので(高木さん)、自分のセッションに丸ごと入れるやり方だと
まんま流用できるとこまでいかないんです。
「まんま流用しないで自分で応用しろよ」て話だと思いますが
それで考えた方法が>>666です
入力~確認~登録 のフォームでの確認画面以降からのデータの持ち回し、
みんなhiddenでやってるわけじゃないですよね。
自分みたいにセッションに入れてる人もいるはずで、その場合どうやって
「複数画面(フォーム)での平行処理&CSRF対策」やってるんでしょうか?
ほんと長々すみません。
Yahoo知恵袋って何であんなに低レベルな回答者しか居ないのか教えてください
簡単な質問しか回答付いてるの見たこと無いです
簡単な質問しか回答付いてるの見たこと無いです
http://www.bspeedtest.jp/
こういうの作る場合ってどのような技術が必要ですか?
こういうの作る場合ってどのような技術が必要ですか?
flashは道具であって技術とは違うだろwwwwwwwwwwwwwwwwwwww
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / php スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- 【PHP】下らねぇ質問はID出して書き込みやがれ 108 (1001) - [98%] - 2011/7/27 14:48
- 【PHP】下らねぇ質問はID出して書き込みやがれ 113 (1001) - [98%] - 2012/1/1 1:00
- 【PHP】下らねぇ質問はID出して書き込みやがれ 109 (1001) - [98%] - 2011/8/30 2:02
- 【PHP】下らねぇ質問はID出して書き込みやがれ 107 (1001) - [98%] - 2011/7/2 2:15
- 【PHP】下らねぇ質問はID出して書き込みやがれ 106 (1001) - [98%] - 2011/6/3 5:17
- 【PHP】下らねぇ質問はID出して書き込みやがれ 105 (1001) - [98%] - 2011/4/28 23:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 123 (1001) - [98%] - 2012/11/20 5:30
- 【PHP】下らねぇ質問はID出して書き込みやがれ 104 (1001) - [98%] - 2011/3/18 9:47
- 【PHP】下らねぇ質問はID出して書き込みやがれ 102 (1001) - [98%] - 2011/1/25 4:34
- 【PHP】下らねぇ質問はID出して書き込みやがれ 101 (1001) - [98%] - 2010/12/18 22:31
- 【PHP】下らねぇ質問はID出して書き込みやがれ 100 (1001) - [98%] - 2010/11/14 21:46
- 【PHP】下らねぇ質問はID出して書き込みやがれ 133 (1001) - [98%] - 2014/7/8 16:30
- 【PHP】下らねぇ質問はID出して書き込みやがれ 128 (1001) - [96%] - 2013/8/4 14:01
- 【PHP】下らねぇ質問はID出して書き込みやがれ 136 (936) - [96%] - 2014/9/18 12:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 137 (995) - [96%] - 2023/1/30 18:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 129 (1001) - [96%] - 2013/9/18 1:45
- 【PHP】下らねぇ質問はID出して書き込みやがれ 134 (1002) - [96%] - 2014/7/29 4:15
トップメニューへ / →のくす牧場書庫について