タグ

ブックマーク / mizchi.hatenablog.com (22)

  • HTML5のシングルページアプリケーションのセキュリティ - mizchi's blog

    昨日の記事で、抽象的なまま書きまくった反省もあるのだけど、それと同時に残念な気持ちになったので、すごく当たり前のことを書く。 オンラインゲームでクライアントに状態を持ったらメモリ操作されて危険っていうブコメが多かった。それは正直、古典的なウェブアーキテクチャから脱却できない残念な感じだと思ってる。 原則 クライアントはサーバーのキャッシュを作って、サーバーと同じロジックを持って、計算し、次の行動を決定する。 が、サーバーはクライアントから送られてくる情報を信用しない。 大事なことなのでもう一度言う。サーバーは、クライアントから送られてくる情報を信用しない。 対応 モデルの状態を受け取るのではなく、モデルのトランザクションを受け取る。 実装例 AからBに攻撃したい。この時にattackEnemyというAPIを作るとする。 ここでのクライアント目的では、手元のデータで対象に攻撃可能かどうかを判

    HTML5のシングルページアプリケーションのセキュリティ - mizchi's blog
    nemoba
    nemoba 2013/09/27
    リードなマスターデータも下手に持つと解析されてネタばれされると事故なんだなあ。ただ、クライアントにリッチなセッション(メモリ)を持てるという認識がないと、従来のForm&Postのアプリ延長として残念設計になるね
  • 世の中のHTML5アプリケーションが糞だから、俺が「初期化」の作り方を教えてやんよ - mizchi's blog

    2chまとめみたいなタイトルにしてみた。(してみたかった) HTML5のアーキテクチャと初期化とキャッシュの考え方が、「ウェブエンジニア」は当に出来てない。 とくにソシャゲをウェブビューに貼ってスマホ対応しました系。当にダメ。 じゃあどうするか?基的に「初期化」の考え方を直せばどうにかなる。 (この記事はBackboneを使うときに考えてることだけど、他でも一緒だと思う) 前提 シングルページアプリケーション セマンティクスやSEOは考慮しない 基哲学 共通モデルの初期化を徹底的に行う サーバーにリクエストを投げるのは最小限 クライアントでサーバーモデルのキャッシュを作り、更新が期待されるまで再取得しない 理由 いくらDOMの最適化したところでUXに影響が大きいのはサーバーリクエスト(200~2000ms)で、プログラミング段階で辛さがあつまるのは非同期処理の部分。 プログラマとし

    世の中のHTML5アプリケーションが糞だから、俺が「初期化」の作り方を教えてやんよ - mizchi's blog
    nemoba
    nemoba 2013/09/26
    基本哲学も考察の余地がある。キャッシュの問題は、データの鮮度の話。これを管理するとモデル層もデータの取得更新のイベントを管理する必要がある。可能ならAPI側にやらせて使い捨てた方がクライアントはシンプルに