アライメントは、要素の位置(左寄せ、中央寄せ、右寄せ)を指定すること
Main Axisは、ウィジェットの向きに
Cross Axisは、ウィジェットと交差する向きに
アライメントは、要素の位置(左寄せ、中央寄せ、右寄せ)を指定すること
Main Axisは、ウィジェットの向きに
Cross Axisは、ウィジェットと交差する向きに
Flutterで、ドロップダウンメニューを作ってみた
リストから、フォントサイズを選択できるようにする
1 | // 選択肢のフォントサイズ一覧を作成 (14〜50) |
Flutterで用意されているマテリアルアイコンを使う
コード例
1 | Row( |
Font Awesomeを使う
1 | import 'package:font_awesome_flutter/font_awesome_flutter.dart'; |
ファイルを新規作成
android/app/proguard-rules.pro
ビルド設定
android/app/build.gradle
ユーザーがWebページにアクセスすることで不正なスクリプトが実行されてしまう脆弱性または攻撃手法
攻撃者による不正ログイン(なりすまし)
利用者のCookieが攻撃者の手に渡ることで、Cookie内にある利用者のセッション情報がそのまま使用されてしまい、利用者の名をかたってサービスを使用されてしまう危険性があります。
Webページに出力するデータのエスケープ処理
Webページの出力に際して特別な意味を持つ文字列(例えば「<」、「&」など)は単なる文字列として出力するようにしましょう。また、エスケープの対象としては、利用者が画面から入力した値はもちろん、外部システムからのデータなどWebページの出力対象となるものは必ずエスケープすることが重要
Webアプリケーション利用者自身が意図しない処理が実行されてしまう脆弱性または攻撃手法
利用者の意図しないWebアプリケーション上の処理実行
図でも表したように、本来はログインした利用者のみが許される記事の投稿処理などがあげられます。
Formページ返却時のトークン付与
今回の例でいうと、はじめに掲示板への書き込み画面を表示する際にサーバがクライアントに対して特定の文字列(トークン)を設定します。実際に書き込みのリクエストがあった際にサーバーが「この人に送ったトークンと同じトークンがリクエストに入ってる?」と確認することで、攻撃者からの不正なリクエストを防ぐことができます。これは、攻撃者は利用者に送信したトークンの値を知らないためです
観点 | XSS | CSRF |
---|---|---|
実行される場所 | Webブラウザ(Client) | Webアプリサーバ(Server) |
実行可能な処理 | 基本的に自由*1 | Webアプリで定義された処理 |
実行の前提 | 特になし | Webアプリにログイン済み*2 |
*1 JavaScriptで実行可能な範囲であればという意味です
*2 Webアプリ利用者(被害者)がCSRF脆弱性を持つWebアプリケーションに対してログイン済みという意味です
次のように、CookieをHTTPレスポンスヘッダーで送るときにhttponly属性を付けると、そのCookieはJavaScriptからはアクセスできなくなる。
httponly属性により、悪意のあるJavaScriptからCookieを守ることができる。
Internet Explorer 8 など、一部の古いブラウザでは、HTML構文を含むファイルをHTML として
誤ってレンダリングする場合があります。
このため、悪意あるユーザがJSON レスポンスに悪意あるHTML構文の挿入に成功した場
合、XSSが発火する可能性があります。
全てのJSONレスポンスのHTTPヘッダに以下のようなヘッダを設定することで XSS のリスクを緩和できます。
(XXXは任意のファイル名)
X-Content-Typeでコンテンツ種別の推論を無効化することで、誤ってHTML として表示される事を防止します。
Content-Dispositionでダウンロードファイルとして明示することでブラウザでのレンダリングを防止します。
Update your browser to view this website correctly. Update my browser now
Future 非同期処理 値を取得すると処理が終了 Stream 非同期処理 ストリームが開いている間、ずっと値が流れてくる 12345678910111213141516171819202122var controller = StreamController<int>();var s
Android Studioで、Flutterのコードフォーマット設定をする。 次の2箇所にチェックを入れればOK - Format code on save - Oragnize imports on save
Android Studioで、1行の行数をセットをする。 Editor > Code Style > Dart > Line Length
コード整形Command + Option + L キーを押す Git CommitCommand + K キーを押す Git PushCommand + Shift + K キーを押す クイックアクションOption + Enter キーを押す 文脈に応じた便利な機能を呼び出す 定義元へジャンプC
問題点クラウド型WAFを導入している場合、IPアドレスでELBに直アクセスされると、WAFによるセキュリティチェックを回避されてしまう。 ELB設定 ALB(Appliation LoadBalancer) > 「リスナー」タブを選択 「HTTP:80」のルール表示 HTTPのアクセスは、HT
ページが見つかりませんでした
本アプリのご利用によって、本規約に同意していただいたものとみなします。 個人情報第三者に個人を特定できる情報を提供する事はありません。 データ解析アプリの利便性向上のため、匿名で個人を特定できない範囲で最新の注意を払い、アクセス解析をしております。例えば、アプリのクラッシュ時にどんな原因でクラッシュ
シンプルなToDoアプリ シンプルなToDoアプリ 複雑な機能はありません。スマートフォン初心者でも悩まず使えます。 データはクラウドに自動保存。機種変更しても、ログインすれば以前のデータを引き継いで利用可能。複数の端末からでも利用可能です。 機能 ログイン(メールアドレス) カテゴリを作成 カテゴ