Blockchain code Metaverse VR

Unity×VR×Blockchain(210)

スポンサーリンク

//tips

//webapi理解

Webapiを使用する上でapiのバージョン変更が行われることも想定しておくべきで、その際には強制アップデートの仕組み(アプリを開くとアプリストアに遷移し、アップロードするような警告)を導入する必要がある。

Webapiのセキュリティの面でも注意が必要で、例えば電話番号から知り合いを検索するapiを悪用され、460万人分の電話番号を含むユーザー情報がネット上に公開されてしまう事態などをsnapchatは招いている。

httpはそれ自体暗号化の仕様を持たないので喫茶店などで多数の人と同じwifiに接続してしまうとパケットスニッフィングツールを入れることで、他人のhttpのデータの中身が丸見えとなる。そうでなくても、セッションID などのサーバ側でユーザを特定する情報が表示される場合があり、それにより乗っ取られることも想定できる。

この問題はhttpsというTLSによる暗号化を行うことで現在は改善されている。httpsでは通信内容だけではなくセッションIDなども暗号化してくれるため幅広い範囲での安全を確保している。

ただ、必ずしも全てもの問題が解決されたわけではなく喫茶店などのwifiを使用する場合に、クライアントとサーバの間に入り仲介することで情報を抜く方法もあり、まだ警戒すべき点は残っている。

webapiではcontent-typeををjsonではなくhtmlとブラウザに判断されてしまうとそこから個人情報を抜かれる可能性があるので、content-typeをapplication/jsonとし、さらにx-content-type-options:nosiniffとすることでブラウザのcontent siniffing機能も発動させず、対応できるようになる。

また、ページのIMG要素を用いて攻撃用のコードを埋め込むような手法がよく見られるので、サーバ側のデータが変化する場合の変更はGETではなく、POST,PUTなどで実行する。

一般的には、他のサイトに誘導する攻撃コードへの対応はXSRFトークンと呼ばれる、サイトが発行するワンタイムトークンでこのコードがない場合はアクセスを拒否するという対応方法がとられているよう。クライアントに特別なリクエストヘッダをつけてもらい、それでサーバへのアクセスを判断するという手法もある。

セキュリティの部分はかなり技術的な知識が入りそう。

一般的なアクセス集中などの問題に対してはユーザーごとのアクセス数制限により対応できる。

さて、一旦WEB API本は読了したのでJson erverを用いてwebapiのモックアップ(雛形api)を作成していく。

実験のためにサーバーを自分で立てるのは手間なので何かいい方法はないかと探していたらjson serverが実験用のapiを作成するのに適しているという記事を見つけたのでそれらを参照しながら実施していく。

https://qiita.com/ykhirao/items/a41322085ab55837b88e

https://qiita.com/futoase/items/2859a60c8b240da70572

Node の JSON Server とそのサービス My JSON Server が凄く便利だった

https://blog.codecamp.jp/json-server-beginner

https://www.codegrid.net/articles/2017-json-server-1/

https://www.to-r.net/media/json-server/

https://qiita.com/tamitami/items/f9329bb51c9b76509c10

初っ端からNpmが読み込まれない。Windowsのコマンドを参考にしていたのでmac用の対応方法を探した。

まずはソフトウエアや拡張機能のインストールのパッケージマネージャであるhomebrewを再度インストール。インストール方法は下記参照。

https://qiita.com/zaburo/items/29fe23c1ceb6056109fd

brew -vのコマンドを実行すると下記のものをインストールしたとのこと。
Homebrew 3.1.8
Homebrew/homebrew-core (git revision 6d7848a23c; last commit 2021-05-22)

そこからさらにbrew install nodebrewを実行。

nodebrewをインストールして、Node.jsをインストールそしてjsonserverの使用につなげていく流れ。

nodebrew use stable
use v16.2.0

この後でやっとnpm initを実行できるようになる。

対話型で色々と聞かれたが後で編集できるようなので全てEnterで完了させた。

そうするとpackage.jsonが作成されていた。

{
"name": "jsontry",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}

ここで再度npm install --save-dev json-serverを実行すると

added 178 packages, and audited 179 packages in 11s

13 packages are looking for funding
run `npm fund` for details

found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 7.13.0 -> 7.14.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.14.0
npm notice Run npm install -g npm@7.14.0 to update!
npm notice

などと表示されたので作成できたよう。

別途jsonファイルを作成して読み込ませてみる。

メモ帳からjsonファイルを作れなかったのでオンラインのjsoneditorを利用した。

https://jsoneditoronline.org/#left=local.hizuho

Jsonserverがないと警告が出たのでnpm install -g json-serverを実行。

そしてjson-server db.jsonを実行すると、

\{^_^}/ hi!

Loading db.json
Oops, db.json doesn't seem to exist
Creating db.json with some default data

Done

Resources
http://localhost:3000/posts
http://localhost:3000/comments
http://localhost:3000/profile

Home
http://localhost:3000

と出てきたのでdbの保存先が悪く存在していないと出てきているよう。

一旦終了し、再度下記部分からリスタート。

https://qiita.com/limonene/items/a10c2755dd2784357c43

https://qiita.com/futoase/items/2859a60c8b240da70572

json-server db.jsonを実行すると今度は下記のエラー。

json-server db.json

\{^_^}/ hi!

Loading db.json
Done
Error: Type of "limit" (number) is not supported. Use objects or arrays of objects.

limit部分で問題が生じているようなので削除。

json-server db.json

\{^_^}/ hi!

Loading db.json
Done

Resources
http://localhost:3000/users

Home
http://localhost:3000

Jsonserverでの読み込みに無事に成功したよう。

人気の記事

1

コロナによる需要変化 コロナパンデミックの影響で、人々は外に出られなくなり、自宅で過ごす時間が増えました。 この自粛ムードの中、下記のようなビジネスの需要変化が引き起こされています。 【利用者減少】 ...

2

米国レストランの決済時に毎日お世話になっていた「Square」のビジネスモデルについて本日はふれていきたいと思います。 「Square」とは、ネットにつながったモバイル端末と専用のカードリーダーを用意 ...

3

無料でネットショップを開けるアプリとして多くの人に驚きを与えたBASE株式会社が、2019年10月25日東証マザーズに上場しました。2020年2月時点で90万店を超えるショップを抱えるまでに成長してい ...

4

2011年にサービスを開始してから圧倒的な成長率を誇るインテリア通販サイト 【FLYMEe/フライミー】を皆さんご存じでしょうか。 「自分のイメージするインテリア、本当に欲しいインテリアがどこにあるの ...

5

ナイキのSNKRSが、なぜこれほどまでに人気なのか?調べてみました。 きっかけは米国での友達との会話。彼は自分のシューズをみせて、「これ20万円もしたんだぜ。」と語ってくれました。 あまり靴に興味がな ...

-Blockchain, code, Metaverse, VR
-, ,

Copyright© BUSINESS HACKER , 2021 All Rights Reserved Powered by AFFINGER5.