JSer.info 200回記念イベント アウトラインメモ
JSer.info 200回記念イベントを開催したので、そのときのメモです。
以下にスライドや発表されたものはまとめてあります。
こっから先は個人的なメモです。
LoopBackについて @yuumi3
LoopBack (Open SourceのBaaS)を使ってみよう! その1. PostgreSQL接続とTwitter認証 - yuumi3のお仕事日記
- BaaSは混戦状態
- iPhoneの勉強会で使ったことがある人 : 2人
- parse.com を使ってる人がいた
- BaaSには2種類ある
- Service指向
- ある種の機能特化
- Platform指向
- 何でも出来るけど自分で作る
- Service指向
- LoopBack
- 現在のシステム
- iPhone -> loopback -> PostgreSQL
- LoopBackいいところ
- API Explorer
- ちゃんと動作してるのかの確認が簡単
- GUIでどんどんチェック出来る
- 条件、並びをfilterで指定できる
- slcコマンドが強力
- deployなどが簡単
- RDBと繋ぐことが出来る
- Railsと繋ぐこともできた
- MongoDB使うのが楽
- テーブル定義はカスタム出来る
- ドキュメントがしっかり出来てる
- 企業が作ってるのでドキュメントがちゃんとある
- サンプルコードがある
- OSSなのでソースを見ればいい
- API Explorer
- 悪いところ
- Nodeについて知らないといけない
- 結論
- APIを作るならかなり便利
Inside TagManager - brn
- どこで使われてるか
- タグを埋め込む
- ユーザの行動を記録したマークする
- 色々使われ過ぎでごちゃごちゃ
- 問題
- タグ変えるの費用がかかる
- タグマネージャを使う
- タグマネージャのスクリプトを一個埋め込む
- TagManagerの実装の問題
document.write
を使いまくり- 大文字のタグを使ってたりする
- 初期の実装
document.wrtie
で一行一行だしてた
- 地獄の始まり
- まず
document.write
をなんとかしよう document.write
の再実装- 複数に分けて出力できるので再実装無理
- バッファにためてまとめて書き出す
- まず
- タグの実行時間やエラーを検知したい
- エラー抑制
- インラインならtry-catchする
- 外部タグのエラーの問題
document.write
やappendChild
等も乗っ取ろう!
- エラー抑制
- ロード状態管理
- IE6-8はonreadystatechangeを使う
- しかしバグってるので無理
- 実行時のエラー
window.onerror
を使う
- タグの実行機能
- 実行前に
document.write
等をすり替える - IEはevalが壊れてるので
window.execScript
で実行 - コメントがあると動かないので除去する
- これで外部タグを支配した
- 実行前に
- エラー検知
- 現在実行中のタグを持っておく
- グローバルな優先度付きのキューを持っておく
appendChild
等の優先度を持たせて、ブロックを再現する- 管理画面でエラー率が見られる
- クライアントが不安になるだけなので見ないで!
- 実行ルール
- 「URLパターン?」-> 「ページ内の文字列でやりたい
- jQueryのロードが必要
noConflict(true)
で衝突を避ける
- マクロの実行
- イベントの実装
- クリックした時にタグを配信したい
- 画面遷移したら計測失敗する
- イベントの遅延
document.documentElement
にイベントを設定- 優先度をつける
event.preventDefault
でページ遷移を防止する- ページ遷移イベントを最低優先度にする
- タグマネージャー on タグマネージャー
- Vendors
- CA
- 無茶な機能が多い
- Google
- 無難な機能
- Yahoo
- APIで後ろで通信してる
- TagKnight
- 無茶
- CA
- タグマネージャー
- 脆弱性の不安
document.write
でブロックした方が効果が高い!
Web Cryptography API - @iskmsy
- WebCryptoで実現できる話
- なぜAPI
- JavaScriptで実現できるけど問題がある
- 遅い
- 鍵生成 = 素数
- セキュリティ
- VM上で秘密鍵を作っても大丈夫なのか?
- VM上だと危ないかも?
- 攻撃される可能性があるのかも
- 安全性の確保
- 統一的な安全性を確保
- 仕様として安全性を確保する
- 暗号ってなに?
- 暗号が実現出来る機能
- Encryption(暗号化)
- 平文から暗号文を作成する
- 秘密鍵を持ってる人しか見れない
- Signature(署名)
- 誰が書いたのか特定できる
- 署名と文章を送る
- 誰が送ったのかを確認出来る
- 改ざんされてないかだけでは、なく誰が書いたのを特定出来る強い
- Authentication(認証)
- 通信相手を特定できる
- DRM
- WebCryptoのユースケース
- Cloud Storage Encryption
- サーバにアップロードする前に暗号化する
- ユーザ側で暗号化するのでユーザしか見られない
- Document Signing
- 元データからハッシュ関数でハッシュ値を作り暗号化
- これから署名を作る
- ユーザーは秘密鍵と公開鍵をもっている
- 相手は、公開鍵と署名を使って誰が送ったかを確認出来る
- Multi-factor Authentication(認証)
- OTP(= One Time Password)
- ユーザ名とパスワードを使わないで認証が可能になる
- 公開鍵をWebCryptoで作成、OTPを生成(暗号化される)
- 秘密鍵でOTPを復号する
- パスワードを直接サーバに送らない
- DRM
- 現状のDRMはFlashに頼ってる
- ブラウザだけで完結できる
- 実装状況
- BlinkとIEは実装
- Geckoは開発中
- Webkitは開発中(新しい仕様に対応してない)
- Cloud Storage Encryption
Brainfuckで遊ぼう その2 - @shigemk2
- Node.jsでBrainfuck
- Brainfuck
- 8つのキーワードで言語を書ける
- Node.jsでどうするのか
- Exeコンパイラを作る
- Brainfuckを実行Exeコンパイラを作る(Win7)
- Brainfuckを実行Exeコンパイラを作る(Win2000)
- EXEファイルの仕組み
- ヘッダーがあってセクションがある
- objdumpで見られる
objdump -d
で逆アセンブルする- Aと出力する = 4行ぐらい
hexdump
してバイナリの中身を見る- このバイナリをNode.jsで出力すれば動くものが作れる!
- しかるべき場所にしかるべき値を入れるようにする
- これをリファクタリングしていく
- Brainfuckを実行するEXEコンパイラ(x86 Windows7対応)
- Brainfuckをパースしてバイナリを書き込んでいく
- 主なエラー
- レジスタに値がはいってないエラー
- Brainfuckのファイルサイズが大きすぎる
- 読み込むファイルのサイズの多く対応しようとするとハードコーディング
- Brainfuckを実行するEXEコンパイラ(Windows CE、SH3)
- ヘッダとかをCE用に合わせる
- .textにアセンブリを直書きする
- 逆汗して命令を確認していく
- 直接CEの端末で書くのは無理なので、CFにEXEファイルを入れて実行させる
- 感想
- ハードコーディングしてるとアドレスの値をずらそうとしたら大変
最後の方電池切れたので、 万が一のためにLTはメモれなかった。
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。