会津ラボ

Illustration of a bird flying.
  • 無料Wi-Fiを使うと危険?安全に使うために知っておきたいVPNとは

    無料Wi-Fiを使うと危険?安全に使うために知っておきたいVPNとは

    オフィスに行かないスタイルが一般的になっていくなか、自宅では集中できない、気分転換ついでに外で仕事がしたい、出先のちょっとした時間も逃したくない、そんな様々な理由からカフェなどの無料Wi-Fiを利用して働く方が増えています。コロナ禍においては、無料Wi-Fiが使える個室をビジネス向けに貸し出すサービスなども誕生しました。 とくにWeb制作やデザイン系のお仕事では、それほどオフィスに行く必要がない場合も多く、フリーランスとして活動する方も少なくありません。そんな方たちにとって、無料Wi-Fiはとっても便利な存在です。 しかし、実はこの無料Wi-Fi、危険が潜んでいることをご存じでしょうか。今回は無料Wi-Fiを使用する際の危険性と気を付けるべきポイントについてご説明します。 便利な無料Wi-Fiにも危険が潜んでいる 最近ではカフェなどの飲食店や駅、コンビニなど、どこでも利用できる無料Wi-Fi。とっても便利ですし、パソコンを使って外で仕事をする方にとって、もはやなくてはならないものでもあります。ですが、やはりそこは『無料』。セキュリティ面で不安がないと言えば嘘になります。どのような危険が潜んでいるのか、しっかり頭に入れておきましょう。 通信内容が外に漏れる可能性がある 無料Wi-Fiのメリットと言えば、誰もがいつでも気軽に使えるという点です。だからこそ、あえてパスワードを設定していないパターンもよくあります。確かに外出中、スマホで無料Wi-Fiに接続するとき、パスワードの入力を求められることはほとんどないですよね。 手軽さというのはとても大切ですが、その反面誰もが同じWi-Fiにアクセスできるということになります。もしその中に悪意のある人がいれば、簡単に自分と誰かのやり取りや、自分が扱うデータの内容を盗み見られる可能性が出てくるのです。重大な情報漏洩のリスクがあることを忘れてはいけません。 なりすましで情報を取られてしまうことも パスワードが不要、さらに暗号化されていない無料Wi-Fiに接続しているなか、メールやネットバンクなどにログインするためのパスワードを入力するのは非常に危険です。 ここ10年間、インターネット上では悪質なサイバー犯罪が増加し無料Wi-Fi接続中のパスワードの個人情報盗難が相次いでいます。 犯罪者などの手によって個人情報が盗まれると、銀行口座などの金融情報や、盗んだ複数の個人IDを組み合わせて架空の人物を作り、他人になりすますといった犯罪行為へと発展します。 一番多く盗まれたのがクレジットカード情報で、2020年の個人情報の盗難数は、約27万件にも上り、盗まれた個人情報全体の41%といった発表もされています。また、日本クレジット協会によると、2021年のクレジットカード不正利用被害額はなんと330億円となっています。人気のフリマアプリであるメルカリでは、不正に入手したクレジットカード情報で商品を購入される被害が拡大しており、今年4月には、16億円規模の不正利用があったと報告がありました。 先にもあったように、アクセスする大勢のなかに悪い思惑を抱えた人間がいないとは限りません。自分しか知らないはずのパスワードを他人に知られてしまえば、そこから不正アクセスといった被害にあう可能性だって考えられます。さらにデータの改ざんなど、思いがけないトラブルに巻き込まれる可能性も否定できません。 有名な無料Wi-Fiの落とし穴 きちんとパスワードが設定されているし、アカウントも登録制だから大丈夫。大手通信会社が提供する無料Wi-Fiのなかには、しっかりセキュリティ対策が取られたものもあります。しかしそれを逆手にとって、安全なものに似たWi-Fiを作り出す悪い人もいるものです。うっかりアクセスしてしまえば、情報を盗まれてしまったり、データの損失・改ざんに繋がることもあるでしょう。 こちらは安全だと思っていることや、何かしら被害にあってもすぐ気づけない場合があることから、このタイプの危険にはとくに注意が必要です。 安全に使うために気を付けたいポイント 無料Wi-Fiには危険がある。とはいえ、正しい知識を身に付ければ、もちろん安全に使うことだってできます。どのようなところに気を付ければよいのか、重要なポイントを見ていきましょう。 重要な情報は扱わない いろいろなポイントがあるなかでも、とにかく一番大切なのは「ほかの人に知られてはいけない情報は扱わない」、それに尽きます。顧客についてや契約内容など、特段重要な情報はセキュリティ対策をしっかり行った社内や自宅で取り扱うようにすると安心です。 パスワード不要のWi-Fiは要注意 ここまで何度か出たように、パスワード不要=誰もが気軽にアクセスできるということです。不特定多数の人がアクセスできて、しかもこちらは誰がアクセスできるか分からない。そんな無料Wi-Fiで仕事に関するやり取りをするのはいいことだと言えません。 今はしっかりパスワードを使用している貸しオフィスなどもありますから、ネット上のやり取りが発生する仕事は場所を選んで行うようにしましょう。 Wi-FiのON・OFFをしっかり管理する 受信できる範囲内に無料Wi-Fiがあれば、自動で接続するよう設定が行える機器があります。知らないうちにWi-Fiに接続することで、無意識のうちに不正アクセスなどの被害にあってしまうことも考えられるのです。機器側の設定もきちんと把握、管理しておいてくださいね。 セキュリティ対策ソフトを導入する とくに仕事で使うPCであれば、できる限りのセキュリティ対策は行っているかと思いますが、やはり市販のソフトというのはとても優秀なものです。うっかり入り込もうとする悪いものをはじき返してくれます。悪人側の手口も巧妙になっているので完全にとは言えませんが、それでもソフトを使わないよりはずっと安心です。 おすすめは「VPN」の使用 「VPN」とは、「Virtual Private Network(バーチャル プライベート ネットワーク)」の略称で仮想的な専用線(トンネル)を構築してインターネット接続を行う仕組みです。自分のIPアドレスを隠すことで、第三者からの介入を防ぎ、安全性を高めてくれます。VPNを使用すると、安全に無料Wi-Fiに接続できるため、テレワークや旅行先など、外出先でも安心してインターネットを利用することができます。 VPN接続によってIPアドレスを変更することで、オンラインゲームやストリーミング、オンラインショッピング、動画視聴など、オンライン上のあらゆる行動の追跡が困難になります。よって、外出先に限らず、自宅で仕事をする時でも、プライベート時にも活躍するツールと言えます。 また、海外から日本のドラマや映画を視聴したい場合に、日本にいながら世界中のVPNサーバーを自由に選択し、使用することで、国や地域制限に囚われない動画視聴を楽しむことができます。 VPNはソフトやアプリを利用すれば簡単に使えるので、よく無料Wi-Fiを使用して仕事をする機会のある方は是非導入してみてください。なかでも会社のサーバーと繋いでデザインデータをやり取りする、クライアントにテストサイトを見てもらう作業が発生するなど、外部とのやり取りが多い職種の方にはおすすめです。 まとめ カフェで仕事をすると捗る、そんな方も少なくありません。しかし、みなさんがお気に入りの場所で接続する無料Wi-Fiには、さまざまな危険が潜んでいることが分りましたね。  今回の記事ではいくつかのポイントをご紹介しましたが、そのなかでもVPNは一番確実で安全な方法です。あまり馴染みがないと難しいことに感じられるかも知れませんが、使い方は難しくありませんし、ちょっと調べれば情報がたくさん出てきます。  自分のセキュリティ対策や知識に自信がないという方は、今回の内容を参考に、VPNを使用した無料Wi-Fiの接続に挑戦してみてはいかがでしょうか。

    June 28, 2022
  • 華麗なる Gatsby + WordPress のメールフォーム実装方法 – Contact Form 7 活用例

    華麗なる Gatsby + WordPress のメールフォーム実装方法 – Contact Form 7 活用例

    Gatsby + WordPress 構成の場合におけるメールフォームは、どのように実装すればいいだろうか? このエントリーでは、Gatsby のメールフォームから Contact Form 7(WP プラグイン)にアクセスしてメール送信する方法を共有したい。 はじめに Netlify にホスティングするならば Netlify Forms を選ぶだろうし、それ以外では、ホスティング先に関わらず静的サイトからアクセスできるフォームサービスも、いくつか選択肢がある。その、いずれもリーズナブルで活用できるし、専用の Web API エンドポイントとアクセスキーを設定するだけ、という簡単なものだ。 ただ、メールのフォーマットに不自由さがあったり、利用回数による課金の可能性を考えると不満がないなんてことにはならない。できるならば制約を抱えたくない。そもそも Headless CMS 枠に WordPress を用いているなら、そこでどうにかしたい。 まず候補に上がるのが、Contact Form 7 だ。WordPress のメールフォーム実装で普遍的な知名度を誇る WP プラグインである。WordPress を Headless 化していることで、各種機能やデータに REST API を介してアクセスできるようになっているわけだから、Contact Form 7 も使えるに違いないというわけだ。 動作環境について WordPress 側の準備 まず WordPress 側の準備をしよう。 以下が、メールフォームの実装に関わる WordPress プラグイン一覧だ。適宜インストールして有効化しておいてほしい。 必要なプラグイン Step 1 wp-config.php に定数を定義する。これは…

    December 21, 2021
  • VSCode の配色テーマを Monokai Pro から GitHub Theme に変更した話

    VSCode の配色テーマを Monokai Pro から GitHub Theme に変更した話

    VSCode のテーマを Monokai Pro から GitHub Theme に変更したことを報告する。 「VSCode のテーマなにがいいだろ…」だったり「ソースコードが見ずらいような気がする…」など配色テーマに満足していないなら、このエントリーが一助となるかもしれない。 はじめに そもそも VSCode のテーマである Monokai Pro に不満はない。むしろ使い続けたいほどだ。なのに、なぜ長らく採用していた Monokai Pro を変更しようと思い至ったのかについて、まずは話しておこう。 Monokai Pro とは Monokai Pro は、従来からの Monokai 配色を VSCode 用に再設計したカラースキームで、ソースコードの配色はもちろんのこと外観テーマやアイコンセットまで及ぶ妥協のない配色テーマになっている。 また Monokai 配色の生みの親(Wimer Hazenberg 氏)によるオリジナル製で “Monokai” を冠したカラースキームにおける本家本元として人気を博している。さまざまなコードエディタで Monokai の配色テーマを含まないものはないほどだ。 そもそも、Monokai の火付け役となったのが、Sublime Text (コードエディタ)にデフォルトテーマとして実装されたことから始まる。それまでのエディタと比べても、明らかなモダンぶりに魅了されたエンジニアは少なくないと思う。 わたし自身、Sublime Text 以降のエディタ遍歴のいずれにおいても Monokai 配色を頑なに採用してきた。 配色テーマを変更した動機 さて、そんな長い付き合いの Monokai を変更しようとした事由としては、OS側の外観モードとミスマッチではないかと感じたことに端を発する。 Mac、Windows に関わらずライトモードを採用していて、モニターの中の景色は白を基調として総じて明るい。そんななかコードエディタだけダーク風味であることに「あれっ?」となったわけだ。いまさら感の強い話ではあるけれど、気になってしまったらどうしようもない。 最近、目が霞むのも、こういった影響が有るのだろうか?…

    December 14, 2021
  • React Hook Form と Draft.js の組み合わせ

    React Hook Form と Draft.js の組み合わせ

    React Hook Form を使えばフォーム周りの state を一元管理したり、バリデーションを加えたり拡張できるけれど、Draft.js の値も組み込めるのか、というのが気になるところだと思う。 「React Hook Form で、Draft.js の state を管理したい」「React Hook Form と Draft.js を組み合わせたい」など、お困りなら力になれるかもしれない。 はじめに リッチテキストエディタを単一に配置する程度ならば、個別に state を設けるのみで済まされる。これは Draft.js 公式のドキュメントに掲載されているように、ひとつの <Editor> に対して、ひとつの editorState を設定するというものだ。 だけど実際には、リッチテキストエディタもフォームの一部であることが自然で、そこには入力フィールドがあったり、選択フィールドがあったり、チェックボックスがあったりすることだろう。 そうするとフォームヘルパー系のライブラリ(react-hook-form)によるフォーム管理が見込めるわけで、そんななか Draft.js の <Editor> だけ別途 state を定義しているのは残念に思えてくる。 どうかこれも一緒に管理できないものか、というのがこのエントリーの根幹になっている。興味を引く内容であったならば引き続きお付き合いいただきたい。 React Hook Form と Draft.js を組み合わせよう React Hook Form と Draft.js の組み合わせにおける最小構成を用意させてもらった。 実装環境 各種関連パッケージのバージョンは、以下コードを確認してほしい。 コンポーネント React コンポーネントは、以下コードを確認してほしい。…

    December 2, 2021
  • ブラウザ対応まで待てない!CSS コンテナクエリ(@container)の polyfill 適用について

    ブラウザ対応まで待てない!CSS コンテナクエリ(@container)の polyfill 適用について

    コンテナクエリのプロトタイプが利用できるようになって、マークアップエンジニア界隈は大きな注目を集める一方で、 Chrome Canary でフラグを有効にしなければ機能しない対応状況が、いまひとつ現場に熱をもたらさない要因となっている。 CSS に関心がある、あなたにおかれても「いつコンテナクエリを使えるのだろう」と首を長くして待たれていたことだろう。そんななか GitHub の GoogleChromeLabs アカウントからコンテナクエリの polyfill が公開された。 このエントリーでは、Container Query Polyfill について紹介したい。 CSS コンテナクエリとは CSS コンテナクエリは、対象の親コンテナのサイズに応じてスタイルを適用するためのものだ。 サイズに応じてスタイルを定義する現行の手段といえば、CSS メディアクエリ(@media)が用いられ、ビューポートを基に切り替えている。しかし、このアプローチでは制限があるとして、CSS コンテナクエリ(@container)が登場したと思われる。 たとえばサイドカラム内のコンテンツなどは、ビューポートを基にするより、親コンテナであるサイドカラムのサイズに基づいてスタイル定義したほうがスマートになる好例じゃないだろうか。 モジュラーな設計が求められる昨今のフロント開発にマッチするとして期待されている。 Container Query Polyfill を適用しよう それでは、CSS コンテナクエリ用 polyfill の container-query-polyfill を適用してみよう。 使い方 ES modules に準拠したセットアップならば、以下のコードで Polyfill を適用できる。 import に際して、パッケージがインストールされている必要があるから、事前に yarn add container-query-polyfill などで用意しておこう。 従来の読み込みが求められるセットアップならば、以下のコードで Polyfill を適用できる。 要件的に、CDNサービスから読み込めないならば、container-query-polyfill リポジトリを git clone するなりダウンロードするなどしてから…

    November 29, 2021
  • 【入門】HTMLを書くとき用意するもの

    【入門】HTMLを書くとき用意するもの

    HTML 入門直後だと「どんな HTML 要素あるの?」だったり「どんなツールが必要なの?」だったりは、当然のように湧き上がる疑問だと思う。 わたし自身も、HTML 入門に踏み込んだころに同様のことでモヤついたのを覚えている。 数ある HTML 要素のなかから、どれを優先して覚えればいいのか、ポピュラーな HTML 要素を知りたいと望んだり、HTML を書くにあたって必要とされるツールはどれなのか、プロの立場から入門者の目線に立ってもなお役立つツールを教えてほしいと願ったりしたものだ。 このエントリーでは、そんな悩みに回答させてもらいたい。 HTML 要素を知る HTML コーディングにおいて HTML 要素の理解は、なによりも要求されるわけだが、WHATWG 勧告の HTML (Living Standard) で 100 個を超える HTML 要素が存在する。それらをあまさず習得すれば最善だろうけれど、実際に HTML コーディングしてみると、そのほんの一部しか使っていないものである。 いずれは全部覚えてもらうとして、これから HTML を覚えようという場合においては、頻出する HTML 要素から始めてみてはどうだろうか。 ここでは、ポピュラーな HTML 要素をピックアップして、お届けしよう。 基本構成 基本的な構成は、DOCTYPE宣言から始まる一連の HTML 要素で作られる。 先頭行の <!DOCTYPE> は、html 文書のバージョンを定義するためのもので必須で配置しなければならない。 <html> は html ファイルの基幹となる要素で、ほかすべての要素を包含している。 <head> は html ファイルに関するメタ情報を含める。つまりタイトルや文字エンコーディング、スタイルなどのことで、目に映らないものを対象とした梱包要素だ。 <body>…

    November 22, 2021
  • [JavaScript] ISO形式の日付をミリ秒に変換する方法

    [JavaScript] ISO形式の日付をミリ秒に変換する方法

    ISO形式の日付データをミリ秒にしなければならないケースといえば、UNIX時間の参照や処理経過時間の計測などだろうか。UNIX時間においては、秒単位であるが、まず日付データをミリ秒に変換する工程が必要だ。それから処理経過時間の計測では、差分を算出するためミリ秒に変換することもあるだろう。 このエントリーでは、ISO 形式の日付をミリ秒に変換するソリューションについて共有したい。 ミリ秒に変換する Date.parse() Date.parse に渡した文字列(ISO形式)に対する、1970 年 1 月 1 日 00:00:00 UTC からの経過ミリ秒で変換している。 Date.prototype.getTime() getTime による 1970 年 1 月 1 日 00:00:00 UTC からの経過ミリ秒で変換している。 数値型に変換するショートハンド + 記号(ショートハンド)によって Date オブジェクトを数値型に変換している。 UNIX時間に変換する UNIX時間は、UTC時刻における1970年1月1日 00:00:00 からの経過秒数で表される。つまりミリ秒を秒に変換できれば目的が果たされる。 では、その方法を見ていこう。 上述の手段によってミリ秒を参照できているから、それを 1000 で割ればよい。

    October 13, 2021
  • Create React Appのwebpack環境をejectしないでカスタマイズする方法

    Create React Appのwebpack環境をejectしないでカスタマイズする方法

    Create React App の webpack 環境を eject することで隠蔽された構成ファイルが、プロジェクトフォルダに顕現する。それらファイルを直接参照できることによって webpack や babel、ESLint など、カスタマイズを可能にしている。 ところが、複雑な構成ファイルを扱うにも抵抗があったり、eject すると元に戻せなかったりとネガティブな感情を覚えてしまう。 そこで、このエントリーでは、eject せずに Create React App をカスタマイズする方法を紹介したい。 カスタマイズの準備 eject せずに Create React App をカスタマイズするにも、多少の準備が必要だ。決して難しいことではないから引き続き付き合ってほしい。 パッケージをインストールする webpack 環境をオーバーライドするのに必要なパッケージをインストールしたい。必要なパッケージは次の、 react-app-rewired customize-cra をインストールする。ついては、以下コマンドを実行してほしい。 開発環境をカスタマイズするためのパッケージであるわけだから、いずれのコマンドも –dev や –save-dev オプションを付与することで、devDependencies 所属のパッケージとしてインストールしている。 package.json を修正する package.json の scripts 項を修正する。 ここでは、eject コマンド以外の react-scripts を react-app-rewired にしているだけだ。 もともと react-scripts が隠蔽された構成ファイルを参照していたところに、react-app-rewired にすることでカスタム用構成ファイルを介入させる作りだと考えられる。…

    June 11, 2021
  • JSライブラリ不要!ページトップへ戻るスムーススクロールの最小構成

    JSライブラリ不要!ページトップへ戻るスムーススクロールの最小構成

    「スムーススクロールのライブラリは使いたくない」この要件に沿ったページトップへ戻るスムーススクロールの最小構成は、どの程度だろうか? 昨今の縦長基調のデザイン構成において当然のように設置される「ページトップへ戻るボタン」であるが、スムーススクロールが実装されているサイトを多く見かける。ボタンをクリックすればページ上部まで、なめらかにスクロールする機能だ。 これを実現するには、JavaScript ライブラリを使うことが一般的だけれど、その導入ともなると労力を要する。できるならば可能な限りスケーリングしたい。 このエントリーでは、JavaScript ライブラリを使わないスムーススクロールの最小構成を紹介しよう。 これこそスムーススクロールの最小構成だ スムーススクロールの最小構成は、HTMLとCSSだけで機能する。あわせて7行程度の記述で済む。以下コードを見てもらうのが早そうだ。 ご覧のとおりHTMLはページ内リンクを設置していることがわかると思う。これだけでは瞬時にスクロール位置が変わるもので、断じてスムーススクロールとは言えない。 そこで注目したいのが、CSSプロパティの scroll-behavior だ。scroll-behavior は、スクロールの振る舞いをコントロールするプロパティで、対象セレクタでスクロールが発生したときに機能する。ただしマウスホイール操作によるスクロールは影響を受けず、ページ内リンクや JavaScript の scrollTo() メソッドなど、指定位置までスクロールするケースにおいて適用される。 URLの # (ハッシュ) を消す なめらかにスクロールするだけで構わないなら、以上の内容で完成しているけれど、URLにアンカーリンク(#page-top)を含んでしまう。わずらわしいのであれば、つぎの記述でアンカーリンクを消せる。 果たして、URLのアンカーリンクを削除できたことだろう。だがしかし、アンカーリンクを消すことがユーザー体験において、どのような効果をもたらすか怪しいところだから、扱いには気をつけてもらいたい。 フォーカスをコントロールする リンクをクリックしたことで a タグにフォーカスが移る。スクロール位置はページ上部を表示しているにも関わらず、見当違いのところにフォーカスがあるわけだ。Tab キーで画面操作するユーザーに最悪のユーザー体験を与えかねない。 したがって、スムーススクロール実装にはフォーカス管理を加えると良いだろう。要点としては、ページ上部にある主要なコンテンツにフォーカスを移す具合だ。 まとめ JavaScript ライブラリを使わないスムーススクロールの最小構成の紹介だった。 フォーカスをコントロールする項目で、onhashchange イベントハンドラのコールバックとしてフォーカス管理を記述している。これは前項の、URLアンカーリンクを消す対応をしている前提で活用してみた。無論、当該イベントハンドラで構わないけれど、ページトップへ戻るボタンのクリックイベントに反応する形で実装しても良さそうだ。臨機応変に要件に沿う対応を心がけたい。

    May 12, 2021
  • ReactのContext APIを簡単実装!「constate」の使い方

    ReactのContext APIを簡単実装!「constate」の使い方

    「React Context API の状態管理が煩雑だ」 状態管理ソリューションの代替策に挙げられる React Context API。コンポーネント間の props のバケツリレーを回避できるソリューションであるが、たびたび引き起こされる煩雑さに悩まされる。 その要因は、コンテクスト( Provider )を展開するコンポーネントでローカルstate を定義するからではないだろうか。 多くのケースで、ルートに位置するコンポーネントに展開する。しかも複数存在することもある。こうなると該当コンポーネントで必要に応じてローカルstate を用意しなければならない。それに加えてコンテクストを外部ファイル化しているような場合、さらにややこしい。 ローカルstate とコンテクストの結びつきを目で追いかけなければならないのは保守性に欠けるうえに見通しが悪くなってしまう。可能ならば、ローカルstate とコンテクストの結びつきが明瞭かつプロジェクトのファイル構成に従いたい。 そのニーズにマッチしたライブラリがある。 このエントリーでは、Context API のラッパーライブラリ「constate」を紹介したい。 Context API とは? Context APIは、任意階層のコンポーネント間でデータを共有する仕組みを提供するものだ。propsの明示指定を強制することなく、コンポーネントツリー間でデータを参照できる。これは、React v16.3で導入されたもので16.x以前のレガシーContext APIとは相容れない。将来のメジャーバージョンで削除される予定とのことだ。 https://reactjs.org/docs/context.html constate について Write local state using React Hooks and lift it up to React Context only when needed with minimum effort. https://github.com/diegohaz/constate 導入 設置 使用例 かんたんな使用例として、モーダル実装を思い出してほしい。 モーダルを開くトリガー要素はいたる所に散らばっていて、それを梱包するコンポーネントとモーダルコンポーネントが兄弟関係にあたる構造は珍しくない。いかにも相性が良さそうだ。 まとめ…

    April 15, 2021
←Previous Page
1 2 3 4 … 14
Next Page→

会津ラボ

Proudly powered by WordPress