ガラケーで楽しむオレJSの勧め

Hiroshi Tokumaru
Hiroshi TokumaruSecurity Engineer at EG Secure Solutions Inc.
ガラケーで楽しむオレJSの勧め



                  2010年7月24日
                          徳丸 浩
         @ockeghem / id:ockeghem
JavaScriptと私

   興味をもったのはサイ本(第2版 1997/7)と出会ってのこと
       1998年のころと思われる
   Aha! なんて面白い言語なんだ!
   「オブジェクト指向プログラム言語としてのJavaScript 」サイトを立
    ち上げる(1998年5月)
       www.tokumaru.orgは、Yahoo!のカテゴリではJavaScriptで登録され
        ている
   1999年頃 お仕事で、JavaScript風のスクリプト言語を作った
       GreenScript:ケータイ向けサーバーサイドのスクリプト言語
       仮想マシンへのコンパイル、GCはストップ&コピー型
       しかし、表面的に似ているだけで、中身はまったく別
           レキシカルスコープのみ…(^^;
       ケータイコンテンツの作成に使用される 初期メロッチャ etc
   その後10年間なにもしてこなかった

                                                         3
携帯電話とJavaScript

   1999年のiモード以来、ケータイブラウザではJavaScriptが長らく
    サポートされていなかった
   EZwebは今でもサポートされていない
       いわゆるフルブラウザは除く
       ここでも話題に取り残されるKDDI
   2009年5月22日以降のiモードブラウザ2.0端末ではJavaScriptが
    サポートされる
   ソフトバンクも2010年夏モデルの944SH(2010年6月18日発売)以
                 公式に対応
    降、JavaScriptに対応




               「公式に」って?
                                              5
iモードブラウザ2.0の登場
2009年5月19日づけNTTドコモ社の報道発表より




http://www.nttdocomo.co.jp/info/news_release/page/090519_00.html より引用

                                                                        6
ソフトバンクでもJavaScriptに対応




                                                                 実はちょっと違った
http://k-tai.impress.co.jp/docs/news/20100518_367787.html より引用               7
本当に2010年夏モデルからなのか?

   実はかなり以前からソフトバンク端末の一部のモデルで
    JavaScriptに対応していた
   ノキア 702NK(2004年12月発売)では簡単なJavaScriptに対応
       XMLHttpRequestやIFRAME、DOMには対応していない
   804SS(2006年3月)、910T(2006年10月)、910SH(2006年11月)
    では、NetFront 3.3によるJavaScript対応
       IFRAME、DOMに対応…攻撃に利用できる可能性*1
       XMLHttpRequestには対応していない
   922SH(2008年3月)では、NetFront 3.4にてAjaxに対応
       XMLHttpRequest / setRequetHeaderのサポート
   944SH, 945SH(2010年夏)にて正式対応
       ユーザエージェントには SoftBank/2.0 とある



注 *1: 804SSはIFRAMEに対応していない
                                                    8
ソフトバンク社技術資料より

     端末は、ソフトバンク携帯電話向けJavaScript を利用
     できる。
     ソフトバンク携帯電話向けJavaScript は、Standard
     ECMA-262 ECMAScript Language Specification
     3rd edition[ECMASCRIPT]に準拠したJavaScript に
     DOM(DOM Level0[JavaScript13], W3C DOM
     Level1[DOM1], W3C DOM Level2[DOM2CORE]
     [DOM2EVENT][DOM2HTML][DOM2STYLE])+XML
     HttpRequest で定義されたインターフェイスを追加し
     たものである。



http://creation.mb.softbank.jp/docs/A-081-111-BrowserExtension_1.0.1.pdf より引用   9
ケータイJavaScriptの互換性

   分かっている非互換性 オレ標準
   ドコモの問題
       alert、confirm、promptが動かない / setRequestHeaderが動かない
        いずれも何もしないメソッドに…(2009年11月のJavaScript再開後)
       XMLHttpRequestで、上位ディレクトリのファイルは読めない
   ソフトバンク/1.0の問題
       目立った機能制限無し
       setRequestHeaderの制限が緩い(後述)
   ソフトバンク/2.0の問題
       setRequestHeaderの制限
        書き換え可能なヘッダは“x-xhr*”のみ
       alert/confirm/promptは使える


   制限する理由はセキュリティ対策らしい

                                                            10
ドコモのalert停止はXSS対策?

    XSS脆弱なスクリプト(本日の唯一のJavaScript)

    <body>
    こんにちは<?php echo $_GET['p']; ?>さん
    </body>

    以下のURLで呼び出し
    http://example.jp/xss.php?p=%3Cscript%3E
    alert(document.cookie)%3C/script%3E

    結果は?




                                               11
ドコモのalert停止はXSS対策?

    ドコモ(P-07A)       ソフトバンク(932SH)




                                     12
ドコモのalert停止はXSS対策?

    ドコモ(P-07A)       ソフトバンク(932SH)




     XSSは発
     動しない
                        XSSが発
                        動する


                                     13
ドコモのalert停止はXSS対策?

    ドコモ(P-07A)       ソフトバンク(932SH)




     XSSは発
     動しない
                        XSSが発
                        動する


                                     14
ドコモのalert停止はXSS対策?

    ドコモ(P-07A)       ソフトバンク(932SH)




     alertが動か
     XSSは発
     ないだけで
     動しない
     XSSは有効             XSSが発
                        動する


                                     15
ソフトバンクの「XSS対策」も発覚

   URLに「<」、「>」、「”」のいずれかの文字がある場合、その文字以
    降を削除してWebサーバに送出している
    http://example.jp/?p=foo<script>alert(document.cookie)</script>
              ↓ こうなる
    http://example.jp/?p=foo

   しかし、%エンコーディングされている場合はそのまま通すので、
    XSS対策にはならない
    http://example.jp/?p=foo%3cscript%3ealert(document.cookie)%3c/s
    cript%3e はそのまま通るのでXSS対策としては意味がない
   URIとして使用できる文字のみ通すという訳でもなさそう
   なぜこういう仕様なのかは謎

   すみません。今日はWeb標準の日でした
    < > ” はURIとして許されない文字なので問題ありません(_ _)
                                                                      16
setRequestHeaderはどのヘッダを改変してよいか?




http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy_for_XMLHttpRequest より引用・追記
                                                                                               17
初出:5月27日




http://mb.softbank.jp/mb/information/details/100527.html より引用          18
http://creation.mb.softbank.jp/docs/A-081-111-BrowserExtension_1.0.1.pdf より引用   19
20
twtr.jpの事例




http://www.tokumaru.org/d/20100222.html#p01

                                              21
Ajax有効な機種のサマリ




•ただし、SHARPの最新機種943SHのみは、Refererが送出されるが、改変はできない
•△はデフォルトでAjax無効、オプションにより有効化可能(SHARP端末は多いので抜粋)
•上記以外のPanasonic、Toshiba等はAjax無効
                                                 22
setRequestHeaer制限の副作用

   iモード2.0、SoftBank 2.0ともsetRequestHeaderには厳しい制限
    が掛かっている
   互換性を損なう可能性
       POSTリクエストの際に、Content-Typeが指定できなくなる
        requester.setRequestHeader(“Content-Type” ,
            “application/x-www-form-urlencoded”);
        → irameで代替
       prototype.jsでは、X-Requested-With、X-Prototype-Versionなどの
        ヘッダを設定している。これらが無効になるので、prototype.jsが使用
        できなくなる可能性
       Ajaxのセキュリティ対策として、setRequestHeaderを使う場合がある
        が、使えない(docomo)か、フィールド名を変更(SoftBank)する必要
        がある(既存Ajaxアプリ、ライブラリの場合)




                                                                 23
まとめ

   最近のガラケーではJavaScriptが利用できる機種がある
   おもに「かんたんログイン」との関係で、JavaScriptには制限がか
    けられている
   ソフトバンクの古い機種には危険な仕様があるが、ユーザに制限
    させるという「対策」がとられた
   NTTドコモとソフトバンクは、おなじACCESS製のブラウザが搭載
    されているがJavaScriptの仕様が違う
   JavaScriptの制限が、アプリケーション開発上の制約となる可能
    性が高い




                                          24
1 of 22

Recommended

ブラウザとWebサーバとXSSの話@Shibuya.xss by
ブラウザとWebサーバとXSSの話@Shibuya.xssブラウザとWebサーバとXSSの話@Shibuya.xss
ブラウザとWebサーバとXSSの話@Shibuya.xssToshiharu Sugiyama
4.1K views15 slides
XSS再入門 by
XSS再入門XSS再入門
XSS再入門Hiroshi Tokumaru
88.5K views31 slides
pgCafeMitaka20090723 by
pgCafeMitaka20090723pgCafeMitaka20090723
pgCafeMitaka20090723Noriyuki Nonomura
582 views11 slides
Rust と Wasmの現実 by
Rust と Wasmの現実Rust と Wasmの現実
Rust と Wasmの現実ShogoTagami1
201 views12 slides
(A7)cross site scripting by
(A7)cross site scripting(A7)cross site scripting
(A7)cross site scriptingOWASP Nagoya
203 views82 slides
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう! by
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!
20181117-一般的な脆弱性の概要・対策を知り、ZAPで見つけてみよう!OWASP Nagoya
988 views18 slides

More Related Content

What's hot

Visualizenetworktraffic 20181108 by
Visualizenetworktraffic 20181108Visualizenetworktraffic 20181108
Visualizenetworktraffic 20181108Takashi Umeno
401 views19 slides
mongoDB: OSC Tokyo2010 spring by
mongoDB: OSC Tokyo2010 springmongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 springichikaway
1.2K views8 slides
汎用apiサーバの構築 by
汎用apiサーバの構築汎用apiサーバの構築
汎用apiサーバの構築Hidetoshi Mori
2K views13 slides
DB tech showcase: 噂のMongoDBその用途は? by
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?Hiroaki Kubota
16.9K views74 slides
Rustを勉強してみた! by
Rustを勉強してみた!Rustを勉強してみた!
Rustを勉強してみた!ssmylh
635 views24 slides
分散Key/Valueストア Kai 事例紹介 by
分散Key/Valueストア Kai事例紹介分散Key/Valueストア Kai事例紹介
分散Key/Valueストア Kai 事例紹介Tomoya Hashimoto
1.9K views22 slides

What's hot(20)

Visualizenetworktraffic 20181108 by Takashi Umeno
Visualizenetworktraffic 20181108Visualizenetworktraffic 20181108
Visualizenetworktraffic 20181108
Takashi Umeno401 views
mongoDB: OSC Tokyo2010 spring by ichikaway
mongoDB: OSC Tokyo2010 springmongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
ichikaway1.2K views
DB tech showcase: 噂のMongoDBその用途は? by Hiroaki Kubota
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
Hiroaki Kubota16.9K views
Rustを勉強してみた! by ssmylh
Rustを勉強してみた!Rustを勉強してみた!
Rustを勉強してみた!
ssmylh635 views
分散Key/Valueストア Kai 事例紹介 by Tomoya Hashimoto
分散Key/Valueストア Kai事例紹介分散Key/Valueストア Kai事例紹介
分散Key/Valueストア Kai 事例紹介
Tomoya Hashimoto1.9K views
Non blocking and asynchronous by Norio Kobota
Non blocking and asynchronousNon blocking and asynchronous
Non blocking and asynchronous
Norio Kobota2.6K views
Playで作るwebsocketサーバ by ke-m kamekoopa
Playで作るwebsocketサーバPlayで作るwebsocketサーバ
Playで作るwebsocketサーバ
ke-m kamekoopa5.1K views
WordPressにお勧めのレンタルサーバ by 黒岩 堅
WordPressにお勧めのレンタルサーバWordPressにお勧めのレンタルサーバ
WordPressにお勧めのレンタルサーバ
黒岩 堅1.5K views
KnockoutJS の紹介 by Oda Shinsuke
KnockoutJS の紹介KnockoutJS の紹介
KnockoutJS の紹介
Oda Shinsuke968 views
暗号化したまま計算できる暗号技術とOSS開発による広がり by MITSUNARI Shigeo
暗号化したまま計算できる暗号技術とOSS開発による広がり暗号化したまま計算できる暗号技術とOSS開発による広がり
暗号化したまま計算できる暗号技術とOSS開発による広がり
MITSUNARI Shigeo2.9K views
Db tech showcase2015 how to replicate between clusters by Hiroaki Kubota
Db tech showcase2015 how to replicate between clustersDb tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
Hiroaki Kubota2K views
Word benchfukuoka by Junji Manno
Word benchfukuokaWord benchfukuoka
Word benchfukuoka
Junji Manno3.7K views
いまさら聞けない WordPress 情報の在り処 by Odyssey Eightbit
いまさら聞けない WordPress 情報の在り処いまさら聞けない WordPress 情報の在り処
いまさら聞けない WordPress 情報の在り処
Odyssey Eightbit1.3K views
DApps のユーザ認証に web3.eth.personal.sign を使おう! by Drecom Co., Ltd.
DApps のユーザ認証に web3.eth.personal.sign を使おう!DApps のユーザ認証に web3.eth.personal.sign を使おう!
DApps のユーザ認証に web3.eth.personal.sign を使おう!
Drecom Co., Ltd.1.5K views
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa by CODE BLUE
XSSフィルターを利用したXSS攻撃 by Masato KinugawaXSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
CODE BLUE7.7K views
TypeScriptへの入口 by Sunao Tomita
TypeScriptへの入口TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita22.2K views
Metamaskでアカウントを作って、nftを投げ合おう by hide ogawa
Metamaskでアカウントを作って、nftを投げ合おうMetamaskでアカウントを作って、nftを投げ合おう
Metamaskでアカウントを作って、nftを投げ合おう
hide ogawa90 views
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4 by azumakuniyuki 🐈
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
[スパム報告]ボタンを押すとどうなるのか | Hosting Casual Talks #4
azumakuniyuki 🐈734 views

Viewers also liked

ガラホ、なるものに対応してきた by
ガラホ、なるものに対応してきたガラホ、なるものに対応してきた
ガラホ、なるものに対応してきたbaban ba-n
1.5K views11 slides
WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱 by
WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱 WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱
WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱 Hiroshi Tokumaru
44.5K views60 slides
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ by
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせphpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせHiroshi Tokumaru
10.4K views30 slides
徳丸本ができるまで by
徳丸本ができるまで徳丸本ができるまで
徳丸本ができるまでHiroshi Tokumaru
4.9K views47 slides
UnicodeによるXSSと SQLインジェクションの可能性 by
UnicodeによるXSSとSQLインジェクションの可能性UnicodeによるXSSとSQLインジェクションの可能性
UnicodeによるXSSと SQLインジェクションの可能性Hiroshi Tokumaru
4.5K views40 slides
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012 by
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012Hiroshi Tokumaru
14.6K views99 slides

Viewers also liked(20)

ガラホ、なるものに対応してきた by baban ba-n
ガラホ、なるものに対応してきたガラホ、なるものに対応してきた
ガラホ、なるものに対応してきた
baban ba-n1.5K views
WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱 by Hiroshi Tokumaru
WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱 WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱
WAS Forum 2010カンファレンス:ケータイ2.0が開けてしまったパンドラの箱
Hiroshi Tokumaru44.5K views
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ by Hiroshi Tokumaru
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせphpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
phpMyAdminにおけるスクリプト実行可能な脆弱性3種盛り合わせ
Hiroshi Tokumaru10.4K views
UnicodeによるXSSと SQLインジェクションの可能性 by Hiroshi Tokumaru
UnicodeによるXSSとSQLインジェクションの可能性UnicodeによるXSSとSQLインジェクションの可能性
UnicodeによるXSSと SQLインジェクションの可能性
Hiroshi Tokumaru4.5K views
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012 by Hiroshi Tokumaru
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2012
Hiroshi Tokumaru14.6K views
文字コードに起因する脆弱性とその対策 by Hiroshi Tokumaru
文字コードに起因する脆弱性とその対策 文字コードに起因する脆弱性とその対策
文字コードに起因する脆弱性とその対策
Hiroshi Tokumaru21.4K views
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011 by Hiroshi Tokumaru
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
Hiroshi Tokumaru7.2K views
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ by Hiroshi Tokumaru
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
ここが変だよ、グローバルスタンダードの脆弱性対策~入力値の考え方~
Hiroshi Tokumaru22.2K views
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか by Hiroshi Tokumaru
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかSecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
Hiroshi Tokumaru9.2K views
Rails SQL Injection Examplesの紹介 by Hiroshi Tokumaru
Rails SQL Injection Examplesの紹介Rails SQL Injection Examplesの紹介
Rails SQL Injection Examplesの紹介
Hiroshi Tokumaru14.2K views
安全なPHPアプリケーションの作り方2013 by Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2013安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru248.2K views
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに by Hiroshi Tokumaru
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
脆弱性は誰のせい? PHP、MySQL、Joomla! の責任やいかに
Hiroshi Tokumaru9.1K views
ログイン前セッションフィクセイション攻撃の脅威と対策 by Hiroshi Tokumaru
ログイン前セッションフィクセイション攻撃の脅威と対策ログイン前セッションフィクセイション攻撃の脅威と対策
ログイン前セッションフィクセイション攻撃の脅威と対策
Hiroshi Tokumaru19.9K views
PHPカンファレンス2009 - 45分で分かる安全なWebアプリケーション開発のための発注・要件・検収 by Hiroshi Tokumaru
PHPカンファレンス2009 - 45分で分かる安全なWebアプリケーション開発のための発注・要件・検収PHPカンファレンス2009 - 45分で分かる安全なWebアプリケーション開発のための発注・要件・検収
PHPカンファレンス2009 - 45分で分かる安全なWebアプリケーション開発のための発注・要件・検収
Hiroshi Tokumaru3.3K views
今日こそわかる、安全なWebアプリの作り方2010 by Hiroshi Tokumaru
今日こそわかる、安全なWebアプリの作り方2010今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
Hiroshi Tokumaru9.1K views
文字コードに起因する脆弱性とその対策(増補版) by Hiroshi Tokumaru
文字コードに起因する脆弱性とその対策(増補版)文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru34K views
徳丸本に載っていないWebアプリケーションセキュリティ by Hiroshi Tokumaru
徳丸本に載っていないWebアプリケーションセキュリティ徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru51.1K views
文字コードの脆弱性はこの3年間でどの程度対策されたか? by Hiroshi Tokumaru
文字コードの脆弱性はこの3年間でどの程度対策されたか?文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?
Hiroshi Tokumaru32.7K views
いまさら聞けないパスワードの取り扱い方 by Hiroshi Tokumaru
いまさら聞けないパスワードの取り扱い方いまさら聞けないパスワードの取り扱い方
いまさら聞けないパスワードの取り扱い方
Hiroshi Tokumaru56.9K views

Similar to ガラケーで楽しむオレJSの勧め

JavaScript.Next by
JavaScript.NextJavaScript.Next
JavaScript.Nextdynamis
28.8K views94 slides
JavaScript.Next Returns by
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returnsdynamis
7K views112 slides
Html5 nagoya 07 by
Html5 nagoya 07Html5 nagoya 07
Html5 nagoya 07Yoshiaki Sugimoto
1.9K views33 slides
EmbulkのGCS/BigQuery周りのプラグインについて by
EmbulkのGCS/BigQuery周りのプラグインについてEmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについてSatoshi Akama
6.7K views16 slides
Demo120724 by
Demo120724Demo120724
Demo120724Kazuo Shimokawa
728 views8 slides
Opa - Cloud Language by
Opa - Cloud LanguageOpa - Cloud Language
Opa - Cloud LanguageTozo Tanaka
556 views11 slides

Similar to ガラケーで楽しむオレJSの勧め(20)

JavaScript.Next by dynamis
JavaScript.NextJavaScript.Next
JavaScript.Next
dynamis 28.8K views
JavaScript.Next Returns by dynamis
JavaScript.Next ReturnsJavaScript.Next Returns
JavaScript.Next Returns
dynamis 7K views
EmbulkのGCS/BigQuery周りのプラグインについて by Satoshi Akama
EmbulkのGCS/BigQuery周りのプラグインについてEmbulkのGCS/BigQuery周りのプラグインについて
EmbulkのGCS/BigQuery周りのプラグインについて
Satoshi Akama6.7K views
Opa - Cloud Language by Tozo Tanaka
Opa - Cloud LanguageOpa - Cloud Language
Opa - Cloud Language
Tozo Tanaka556 views
次世代プラットフォームのセキュリティモデル考察(前編) by Yosuke HASEGAWA
次世代プラットフォームのセキュリティモデル考察(前編)次世代プラットフォームのセキュリティモデル考察(前編)
次世代プラットフォームのセキュリティモデル考察(前編)
Yosuke HASEGAWA9.4K views
Application Architecture for Enterprise Win Store Apps with DDD Pattern by Atsushi Kambara
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Atsushi Kambara3.1K views
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin... by CODE BLUE
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
[CB16] Electron - Build cross platform desktop XSS, it’s easier than you thin...
CODE BLUE1.1K views
スマートフォン対応、気をつけたいトラブル by Hiroaki Wakamatsu
スマートフォン対応、気をつけたいトラブルスマートフォン対応、気をつけたいトラブル
スマートフォン対応、気をつけたいトラブル
Hiroaki Wakamatsu29.3K views
JSX の現在と未来 - Oct 26 2013 by Kazuho Oku
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
Kazuho Oku8.2K views
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力 by ThinReports
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports6.6K views
「html5 boilerplate」から考える、これからのマークアップ by Yasuhito Yabe
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe6K views
2014 1018 OSC-Fall Tokyo NETMF by Atomu Hidaka
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
Atomu Hidaka854 views
PlayFramework1.2.4におけるWebSocket by Kazuhiro Hara
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
Kazuhiro Hara2K views
第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて by Takahiro (Poly) Horikawa
第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて
第10回Mozilla拡張機能勉強会-FireMobileSimulatorについて
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える by david9142
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
david91422.2K views

More from Hiroshi Tokumaru

SPAセキュリティ入門~PHP Conference Japan 2021 by
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
99.5K views107 slides
ウェブセキュリティのありがちな誤解を解説する by
ウェブセキュリティのありがちな誤解を解説するウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説するHiroshi Tokumaru
5.3K views64 slides
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する by
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証するHiroshi Tokumaru
1.8K views27 slides
SQLインジェクション再考 by
SQLインジェクション再考SQLインジェクション再考
SQLインジェクション再考Hiroshi Tokumaru
1.1K views31 slides
徳丸本VMに脆弱なWordPressを導入する by
徳丸本VMに脆弱なWordPressを導入する徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入するHiroshi Tokumaru
821 views8 slides
introduction to unsafe deserialization part1 by
introduction to unsafe deserialization part1introduction to unsafe deserialization part1
introduction to unsafe deserialization part1Hiroshi Tokumaru
515 views19 slides

More from Hiroshi Tokumaru(20)

SPAセキュリティ入門~PHP Conference Japan 2021 by Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru99.5K views
ウェブセキュリティのありがちな誤解を解説する by Hiroshi Tokumaru
ウェブセキュリティのありがちな誤解を解説するウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru5.3K views
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する by Hiroshi Tokumaru
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
Hiroshi Tokumaru1.8K views
SQLインジェクション再考 by Hiroshi Tokumaru
SQLインジェクション再考SQLインジェクション再考
SQLインジェクション再考
Hiroshi Tokumaru1.1K views
徳丸本VMに脆弱なWordPressを導入する by Hiroshi Tokumaru
徳丸本VMに脆弱なWordPressを導入する徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入する
Hiroshi Tokumaru821 views
introduction to unsafe deserialization part1 by Hiroshi Tokumaru
introduction to unsafe deserialization part1introduction to unsafe deserialization part1
introduction to unsafe deserialization part1
Hiroshi Tokumaru515 views
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方 by Hiroshi Tokumaru
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru2.6K views
XXE、SSRF、安全でないデシリアライゼーション入門 by Hiroshi Tokumaru
XXE、SSRF、安全でないデシリアライゼーション入門XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
Hiroshi Tokumaru3.6K views
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題 by Hiroshi Tokumaru
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Hiroshi Tokumaru27.3K views
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019) by Hiroshi Tokumaru
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Hiroshi Tokumaru9.6K views
Railsエンジニアのためのウェブセキュリティ入門 by Hiroshi Tokumaru
Railsエンジニアのためのウェブセキュリティ入門Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru23.9K views
安全なWebアプリケーションの作り方2018 by Hiroshi Tokumaru
安全なWebアプリケーションの作り方2018安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
Hiroshi Tokumaru30.1K views
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう by Hiroshi Tokumaru
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみようデバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
Hiroshi Tokumaru30.4K views
若手エンジニアのためのセキュリティ講座 by Hiroshi Tokumaru
若手エンジニアのためのセキュリティ講座若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座
Hiroshi Tokumaru31.8K views
ウェブセキュリティの常識 by Hiroshi Tokumaru
ウェブセキュリティの常識ウェブセキュリティの常識
ウェブセキュリティの常識
Hiroshi Tokumaru31.4K views
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則 by Hiroshi Tokumaru
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
Hiroshi Tokumaru71.5K views
ウェブアプリケーションセキュリティ超入門 by Hiroshi Tokumaru
ウェブアプリケーションセキュリティ超入門ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門
Hiroshi Tokumaru48.4K views
ウェブセキュリティの最近の話題早分かり by Hiroshi Tokumaru
ウェブセキュリティの最近の話題早分かりウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かり
Hiroshi Tokumaru71.5K views
セキュリティの都市伝説を暴く by Hiroshi Tokumaru
セキュリティの都市伝説を暴くセキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
Hiroshi Tokumaru87.2K views

Recently uploaded

SNMPセキュリティ超入門 by
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
301 views15 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
104 views42 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
80 views41 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
18 views38 slides
JJUG CCC.pptx by
JJUG CCC.pptxJJUG CCC.pptx
JJUG CCC.pptxKanta Sasaki
6 views14 slides

Recently uploaded(11)

SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda301 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka80 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdf
nanamatsuo16 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4287 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.51 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之94 views

ガラケーで楽しむオレJSの勧め

  • 1. ガラケーで楽しむオレJSの勧め 2010年7月24日 徳丸 浩 @ockeghem / id:ockeghem
  • 2. JavaScriptと私  興味をもったのはサイ本(第2版 1997/7)と出会ってのこと  1998年のころと思われる  Aha! なんて面白い言語なんだ!  「オブジェクト指向プログラム言語としてのJavaScript 」サイトを立 ち上げる(1998年5月)  www.tokumaru.orgは、Yahoo!のカテゴリではJavaScriptで登録され ている  1999年頃 お仕事で、JavaScript風のスクリプト言語を作った  GreenScript:ケータイ向けサーバーサイドのスクリプト言語  仮想マシンへのコンパイル、GCはストップ&コピー型  しかし、表面的に似ているだけで、中身はまったく別  レキシカルスコープのみ…(^^;  ケータイコンテンツの作成に使用される 初期メロッチャ etc  その後10年間なにもしてこなかった 3
  • 3. 携帯電話とJavaScript  1999年のiモード以来、ケータイブラウザではJavaScriptが長らく サポートされていなかった  EZwebは今でもサポートされていない  いわゆるフルブラウザは除く  ここでも話題に取り残されるKDDI  2009年5月22日以降のiモードブラウザ2.0端末ではJavaScriptが サポートされる  ソフトバンクも2010年夏モデルの944SH(2010年6月18日発売)以 公式に対応 降、JavaScriptに対応 「公式に」って? 5
  • 5. ソフトバンクでもJavaScriptに対応 実はちょっと違った http://k-tai.impress.co.jp/docs/news/20100518_367787.html より引用 7
  • 6. 本当に2010年夏モデルからなのか?  実はかなり以前からソフトバンク端末の一部のモデルで JavaScriptに対応していた  ノキア 702NK(2004年12月発売)では簡単なJavaScriptに対応  XMLHttpRequestやIFRAME、DOMには対応していない  804SS(2006年3月)、910T(2006年10月)、910SH(2006年11月) では、NetFront 3.3によるJavaScript対応  IFRAME、DOMに対応…攻撃に利用できる可能性*1  XMLHttpRequestには対応していない  922SH(2008年3月)では、NetFront 3.4にてAjaxに対応  XMLHttpRequest / setRequetHeaderのサポート  944SH, 945SH(2010年夏)にて正式対応  ユーザエージェントには SoftBank/2.0 とある 注 *1: 804SSはIFRAMEに対応していない 8
  • 7. ソフトバンク社技術資料より 端末は、ソフトバンク携帯電話向けJavaScript を利用 できる。 ソフトバンク携帯電話向けJavaScript は、Standard ECMA-262 ECMAScript Language Specification 3rd edition[ECMASCRIPT]に準拠したJavaScript に DOM(DOM Level0[JavaScript13], W3C DOM Level1[DOM1], W3C DOM Level2[DOM2CORE] [DOM2EVENT][DOM2HTML][DOM2STYLE])+XML HttpRequest で定義されたインターフェイスを追加し たものである。 http://creation.mb.softbank.jp/docs/A-081-111-BrowserExtension_1.0.1.pdf より引用 9
  • 8. ケータイJavaScriptの互換性  分かっている非互換性 オレ標準  ドコモの問題  alert、confirm、promptが動かない / setRequestHeaderが動かない いずれも何もしないメソッドに…(2009年11月のJavaScript再開後)  XMLHttpRequestで、上位ディレクトリのファイルは読めない  ソフトバンク/1.0の問題  目立った機能制限無し  setRequestHeaderの制限が緩い(後述)  ソフトバンク/2.0の問題  setRequestHeaderの制限 書き換え可能なヘッダは“x-xhr*”のみ  alert/confirm/promptは使える  制限する理由はセキュリティ対策らしい 10
  • 9. ドコモのalert停止はXSS対策?  XSS脆弱なスクリプト(本日の唯一のJavaScript) <body> こんにちは<?php echo $_GET['p']; ?>さん </body>  以下のURLで呼び出し http://example.jp/xss.php?p=%3Cscript%3E alert(document.cookie)%3C/script%3E  結果は? 11
  • 10. ドコモのalert停止はXSS対策? ドコモ(P-07A) ソフトバンク(932SH) 12
  • 11. ドコモのalert停止はXSS対策? ドコモ(P-07A) ソフトバンク(932SH) XSSは発 動しない XSSが発 動する 13
  • 12. ドコモのalert停止はXSS対策? ドコモ(P-07A) ソフトバンク(932SH) XSSは発 動しない XSSが発 動する 14
  • 13. ドコモのalert停止はXSS対策? ドコモ(P-07A) ソフトバンク(932SH) alertが動か XSSは発 ないだけで 動しない XSSは有効 XSSが発 動する 15
  • 14. ソフトバンクの「XSS対策」も発覚  URLに「<」、「>」、「”」のいずれかの文字がある場合、その文字以 降を削除してWebサーバに送出している http://example.jp/?p=foo<script>alert(document.cookie)</script> ↓ こうなる http://example.jp/?p=foo  しかし、%エンコーディングされている場合はそのまま通すので、 XSS対策にはならない http://example.jp/?p=foo%3cscript%3ealert(document.cookie)%3c/s cript%3e はそのまま通るのでXSS対策としては意味がない  URIとして使用できる文字のみ通すという訳でもなさそう  なぜこういう仕様なのかは謎  すみません。今日はWeb標準の日でした < > ” はURIとして許されない文字なので問題ありません(_ _) 16
  • 18. 20
  • 21. setRequestHeaer制限の副作用  iモード2.0、SoftBank 2.0ともsetRequestHeaderには厳しい制限 が掛かっている  互換性を損なう可能性  POSTリクエストの際に、Content-Typeが指定できなくなる requester.setRequestHeader(“Content-Type” , “application/x-www-form-urlencoded”); → irameで代替  prototype.jsでは、X-Requested-With、X-Prototype-Versionなどの ヘッダを設定している。これらが無効になるので、prototype.jsが使用 できなくなる可能性  Ajaxのセキュリティ対策として、setRequestHeaderを使う場合がある が、使えない(docomo)か、フィールド名を変更(SoftBank)する必要 がある(既存Ajaxアプリ、ライブラリの場合) 23
  • 22. まとめ  最近のガラケーではJavaScriptが利用できる機種がある  おもに「かんたんログイン」との関係で、JavaScriptには制限がか けられている  ソフトバンクの古い機種には危険な仕様があるが、ユーザに制限 させるという「対策」がとられた  NTTドコモとソフトバンクは、おなじACCESS製のブラウザが搭載 されているがJavaScriptの仕様が違う  JavaScriptの制限が、アプリケーション開発上の制約となる可能 性が高い 24