カスタムURLスキームの乗っ取りとその対策 May 17, 2021 カスタムURLスキームは、モバイルアプリ内のコンテンツへ直接誘導するディープリンクに広く利用されている¹。そのような中で、2020年3月にLINEはカスタムURLスキーム line:// の使用を非推奨とした²。非推奨の理由をLINEは「乗っ取り攻撃が可能なため」と説明し、代わりにHTTP URLスキームによるリンクを推奨している。この変更に対して私は、なぜHTTP URLスキームによるリンクだと乗っ取り攻撃を防げるのか疑問を抱いた。この疑問に答えるためにLINEアプリの乗っ取りを試み、対策の有効性を確認した。 要約 HTTP URLスキームによるディープリンクは対象のアプリを一意に特定できるため、不正アプリによるリンクの乗っ取りが発生しない。カスタムURLスキームでは複数のアプリが同じスキームを宣言できるため、モバイル
1. はじめに こんにちは、UX部RetentionグループにてiOS開発を担当している山崎です。 先日のアップデートにてiOSのウィジェット機能を大きく拡充したのですが、みなさん使っていただけましたでしょうか? 各通貨の騰落率をさっと確認する上でとても便利なものに仕上がったのでまだ使っていない方はぜひ使ってみてください! ↓ ウィジェットの設定方法がわからない方はこちら https://faq.coincheck.com/s/article/40116?language=ja 今回のアップデートでの主な変更点は ①ミニチャートがウィジェット中央部分に追加された ②騰落率順にウィジェットの通貨を並び替えできるようになった の2点です。今回この機能追加をするにあたって想定外の「メモリ」問題に苦しめられたので、これについて解説していきたいと思います。 2. メモリ問題に気づくまで メモリ問題に
###該当のソースコード swift //mp3データを取得 let sineURL = NSBundle.mainBundle().URLForResource("SUPER", withExtension: "mp3")! let asset = AVAsset(URL: sineURL) var assetReader:AVAssetReader do{ assetReader = try AVAssetReader(asset: asset) }catch{ fatalError("Unable to read Asset: \(error) : \(#function).") } let track = asset.tracksWithMediaType(AVMediaTypeAudio).first let outputSettings: [String:Int] = [ AV
今日はSpriteKitというゲーム作成用のフレームの紹介をしていきたいと思います。 SpriteKitとは iOS7で出たゲーム作り用のフレームワークです。 ゲーム作りに必要なSKNode・SKActionなどの様々な便利クラスを提供してくれます。 SpriteKitのサンプルを動かしてみる 早速XcodeでSpriteKitのサンプルを動かしてみます。 新規プロジェクト作成画面でGameを選択します。 作成されたプロジェクトを動かすと「画面タップで飛行機が出現するアプリ」が動いているかと思います。 SpriteKitの機能 今動かしたサンプルを元にSpriteKitの機能について書いていきます。 まずは主要なクラスや機能について書いていきます。 画面を構成するクラス SpriteKitでは画面をSKSceneクラスを使って表します。 SKSceneはゲーム以外のアプリのUIViewCo
昨日、第17回 potatotips という iOS / Android の開発Tips共有会(勉強会)で標題の発表をしてきました。 殺しても死なないアプリ 〜Core Bluetooth の「状態の保存と復元」機能〜 from Shuichi Tsutsumi 概要 Core Bluetooth のバックグラウンド実行モードについて。内訳としては、 対応方法 バックグラウンドでできること バックグラウンドにおける制約 「状態の保存と復元」機能について という感じです。 発表時間はきっちり5分しかなかったので結局デモはできず、なんとなく様子がわかる(かもしれない)スクショを貼り付けてあります。 Core Bluetooth の「状態の保存と復元」 この Core Bluetooth の「状態の保存と復元」(State Preservation and Restoration)機能、アプリが
About the content This content has been published here with the express permission of the author. Carthage is a new dependency manager for Objective-C and Swift projects, intended to be the simplest way to add frameworks to a Cocoa application. Carthage works by delegating tasks to Xcode and Git, minimizing new concepts as much as possible, so you can continue to use the tools you’re already famil
Want to stay up to date? For announcements of new conferences, useful materials, and inspiration - subscribe to us!
ここ数週間ずっとswiftを書いてきたのですが、swiftは 書いていてつまらない 言語仕様がちょっと頭おかしい オフィシャル言語なのにIDEが糞 未来が見えない と、ぶっちゃけ飽きてしまったので、HaskellでiOSアプリを書くという茨の道に行ってみたいと思いました。 HaskellでiOSアプリがかければ共通部分の処理はHaskellのままAndroidで動かすとか色々できそうです。ぶっちゃけHaskellからCに落としちゃえばどこでも動かせるはずです。というわけで色々探していたところ HaskellがiOSをサポート、性能を改善 というわけで、動くのは動くらしい。少し触ってみて感じを掴んでみることにしました。まずは環境をつくって"Hello, world."です。 今回の参考資料 今回は基本的にこれに従って進めていきます。 ghc-ios/ghc-ios-scripts · Git
という記事を見かけたので。 このライブラリの実装の問題点 key description type 基本的には強制バージョンアップを行うことを前提に解説していますが、SRGVersionUpdaterではキャンセルボタン付きの告知アラートを表示することも出来ます。強制アップデートの場合は"force" を任意でのアップデートの場合は"optional"を入力して下さい。 これ、設計ミスってません? 一度致命的なバグを出して"force"で通知したら、それ以降二度と"optional"は使えません。「必ず一定以上のバージョンを使って欲しいけど、最新版の通知もしたい」ようなユースケースに対応できないなら、"optional"の存在意義はない気がします。 あと、「評価が付くまで様子見ユーザー」層は毎回"optional"の通知を繰り返し見せられて離れます。開発者がいいと思ったアップデートが必ずし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く