質問するログイン新規登録

回答編集履歴

3

検証環境の構築

2019/08/24 04:48

投稿

think49
think49

スコア18194

answer CHANGED
@@ -27,5 +27,27 @@
27
27
  - [PHP: 基本的な使用法 - Manual](https://www.php.net/manual/ja/session.examples.basic.php)
28
28
  - [Chrome DevTools  |  Tools for Web Developers  |  Google Developers](https://developers.google.com/web/tools/chrome-devtools/?hl=ja#network)
29
29
 
30
+ ### 検証環境の構築
30
31
 
32
+ > 参考に実装を試してみようと思いますが、実装するにあたって何か必要なツールを事前にインストールする必要はありますでしょうか?
33
+
34
+ **PHPマニュアル**を参照して下さい。
35
+
36
+ - [PHP: 必要なものは? - Manual](https://www.php.net/manual/ja/tutorial.requirements.php)
37
+
38
+ > ここでは、貴重なネットワーク帯域を節約するために、 ローカルに開発を行うことにしましょう。この場合、 » Apache のような Web サーバーと、 当然、» PHP をインストールすることになります。また、多くの場合には、 » MySQL のようなデータベースもインストールすることになるでしょう。
39
+
40
+ 「PHPマニュアル」は序章から順番に読んでいけば、インストールにも触れていますので、一通り読むことをお勧めします。
41
+
42
+ - [PHP: PHP マニュアル - Manual](https://www.php.net/manual/ja/)
43
+
44
+ Webサーバは最近では「nginx」も人気が高いようですが、私は詳しくないので、「Apache」「nginx」をWeb検索して情報量の多い方をインストールする事をお勧めします。
45
+
46
+ - [apache インストール - Google 検索](https://www.google.com/search?q=apache+%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&ie=UTF-8)
47
+ - [nginx インストール - Google 検索](https://www.google.com/search?q=nginx+%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
48
+
49
+ Chrome Developper Tools等の [Network] タブでは情報量が不足している場合は、Fiddlerをインストールしてみて下さい。
50
+
51
+ - [Fiddler - Free Web Debugging Proxy - Telerik](https://www.telerik.com/fiddler)
52
+
31
53
  Re: mie.8 さん

2

目的と打開策

2019/08/24 04:48

投稿

think49
think49

スコア18194

answer CHANGED
@@ -1,3 +1,5 @@
1
+ ### セッションと認証情報
2
+
1
3
  > IDとパスワードを盗み取りたいとは書いてません。(言ってません。)
2
4
  > 認証情報は、どうやって取得するかを聞いてます。
3
5
 
@@ -7,7 +9,23 @@
7
9
  `XMLHttpRequest`, `fetch` 等によって、JavaScriptからリクエストを投げるならヘッダを取れますが、自身がリクエストしていない通信のHTTPヘッダを取る方法は私の知る限りではありません。
8
10
  (取れたら、それこそ盗み放題ですし、安心して外部ドメインの外部jsを参照出来ません。)
9
11
 
12
+ ### 目的と打開策
13
+
10
14
  「HTTPヘッダを得て、何をしたいのか」を明らかにして下さい。
11
15
  現状では、別の方法を模索することも出来ません。
12
16
 
17
+ > ユーザーがログインする時に、「今月のお買い物金額情報」を付与され認証されるとします。
18
+ > その情報をログイン後、ユーザーのTOPページに表示したく、認証情報の取得を行いたかったです。
19
+
20
+ 認証を行うのは「サーバ」で、「今月のお買い物金額情報」を持っているのも「サーバ」です。
21
+ 特定の通信リクエストを投げたら、「今月のお買い物金額情報」を返すコードをサーバサイドスクリプトで書いて下さい。
22
+ Web StorageやCookieにセッションIDを置く設計にすれば、認証は問題ないと思います。
23
+
24
+ セッションとブラウザの挙動を把握されていないようなので、セッションを使ったWebページを作って、ブラウザの動きを確かめてみる事をお勧めします。
25
+ ブラウザ付属のDevelopper Toolsの [Network] タブでHTTPヘッダを確認可能です。
26
+
27
+ - [PHP: 基本的な使用法 - Manual](https://www.php.net/manual/ja/session.examples.basic.php)
28
+ - [Chrome DevTools  |  Tools for Web Developers  |  Google Developers](https://developers.google.com/web/tools/chrome-devtools/?hl=ja#network)
29
+
30
+
13
31
  Re: mie.8 さん

1

typo修正

2019/08/23 12:33

投稿

think49
think49

スコア18194

answer CHANGED
@@ -4,7 +4,7 @@
4
4
  HTTPリクエストヘッダを読みとるという事は、ログイン時の認証情報(生データ)を参照する事なので、盗むことか可能です。
5
5
  本来、セッションは**認証情報をクライアント側に渡さない為の仕組み**であり、「JavaScriptでHTTPヘッダを参照したい」がその用途に反する目的だったので、意図を尋ねました。
6
6
 
7
- `XMLHttpRequest`, `fetch` 等によっ9て、JavaScriptからリクエストを投げるならヘッダを取れますが、自身がリクエストしていない通信のHTTPヘッダを取る方法は私の知る限りではありません。
7
+ `XMLHttpRequest`, `fetch` 等によって、JavaScriptからリクエストを投げるならヘッダを取れますが、自身がリクエストしていない通信のHTTPヘッダを取る方法は私の知る限りではありません。
8
8
  (取れたら、それこそ盗み放題ですし、安心して外部ドメインの外部jsを参照出来ません。)
9
9
 
10
10
  「HTTPヘッダを得て、何をしたいのか」を明らかにして下さい。