プログラム

プログラム

PHP U2Fセキュリティキーを使った2段階認証の実装方法メモ

U2F(Universal2ndFactor)は、認証技術FIDO(ファイド)の認証方式の1つです。ユーザーIDとパスワードで認証した後に、U2Fに対応したセキュリティキーなどで2段階認証を行う仕様になっています。電子的認証のガイドラインNISTSP800-63BではこのU2Fセキュリティキーを使った2段階認証をAAL3(認証者保証レベル3)という最も強度が高い認証方式として位置付けています。そこ...
プログラム

2段階認証を実装するための記事まとめ(PHP+認証アプリ)

GoogleAuthenticatorなどの認証アプリを使った2段階認証を、ご自分や自社のWEBサービスに導入するのは少しハードルが高いと思ってはいませんか?実は、認証アプリを使った2段階認証は、RFC6238Time-BasedOne-TimePasswordAlgorithmというとてもシンプルな技術仕様で実装できるため、スマートフォンが普及した現在では、比較的簡単に導入することができます。そ...
プログラム

PHP で otpauth URI(TOTP)を作成する方法

2段階認証でよく使われるTOTP(時間ベースのワンタイムパスワード)は、利用をはじめる時にGoogleAuthenticatorなどの認証アプリに、サーバーで生成した秘密鍵を登録します。この登録する秘密鍵はQRコードで表示することが多いのですが、その際に秘密鍵などをotpauthURIという形式にしてQRコードに埋め込む必要があります。そこで今回は、PHPでotpauthURI(TOTP)を作成す...
プログラム

5分で出来る!PHPでQRコードを生成する方法

つい先日PHPでQRコードを生成する機会があったので少し調べてみました。実装は大変かと思っていましたが、ありがたいことにQRコードを生成するPHPライブラリはいくつも公開されていて、簡単にQRコードを生成することができそうです。そこで今回は、endroid/qr-codeを使ってPHPでQRコードを生成する方法をまとめてみました。
プログラム

PHP + Google Authenticator(TOTP)2段階認証の実装方法

2019年7月、あるスマートフォン決済サービスが不正利用され多くの利用者の方が被害に遭われました。その決済サービスには、2段階認証やそれに準ずるセキュリティ対策を怠ったとして大きな批判が集まりました。高い安全性が求められるサービスでは、パスワード認証だけでは安全を確保することが難しくなっています。そこで今回は、PHPとGoogleAuthenticatorを使った2段階認証の実装方法をまとめてみま...
プログラム

Python の勉強時間を取れない人に Pythonista は絶対オススメな話

最近注目のプログラミング言語Python(パイソン)の勉強をしたいけれども、なかなか勉強時間を取れない方は多いのではないでしょうか? そんな方にオススメなのがPythonのコードをiPhoneやiPadで簡単に実行できるアプリPythonista(パイソニスタ)です。そこで今回は、Pythonの勉強時間を取れない人にPythonistaをオススメする理由をまとめてみました。
プログラム

Apache NetBeans 11 を macOS にインストールメモ

ApacheNetBeans(ネットビーンズ)は、オープンソースの統合開発環境(IDE)です。JavaやPHPなど色々なプログラム言語に対応しています。以前はオラクルが中心になってNetBeansを開発していましたが、バージョン9からApacheが開発をするようになりました。現時点ではインストーラーが提供されていないため、以前とインストール方法が少し変わっているようです。そこで今回は、現時点(20...
プログラム

A3RT の Talk API を PHP で使ってみた

リクルートテクノロジーズが公開しているA3RT(アート)は、機械学習や人工知能を手軽に使うことができるAPI群です。A3RTの各種APIはメールアドレスの登録だけで無償で使うことができます。そこで今回は、Chatbotを簡単に作成することができるTalkAPIをPHPで使ってみました。
プログラム

ヘッドレスChrome + Puppeteer のインストールと使い方メモ(CentOS)

ヘッドレスChrome(HeadlessChrome)は、コマンドラインからGoogleChromeを操作できる仕組みです。WEBアプリの自動テストや、WEBサイトのパフォーマンス監視などに活用することができそうですね。また、ヘッドレスChromeを操作するためのNodeライブラリPuppeteer(パペティアー)の正式版が最近(2018年1月)リリースされました。そこで今回は、CentOS7にG...
プログラム

PHP7.2 に mcrypt をインストールする方法(ただし非推奨!)

PHPでデータを暗号化や複号化をする時によく使われていたmcrypt関数が、PHP7.2でコアから削除されました。ただOpenSSL関数を使えばmcryptと同じことができる上に処理も早いので問題ないはずなのですが、古いシステムからの移行時のつなぎや、色々な力関係などで(^^;)しかたなくmcryptを使わなければならない場面もあるかと思います。そこで今回は、非推奨ですがPHP7.2にmcrypt...
プログラム

小数計算の誤差 0.1 + 0.2 が 0.30000000000000004 になる理由

JavaScriptで「0.1+0.2」のような小数の計算をすると、答えが「0.30000000000000004」になり誤差が発生することがあります。JavaScriptでプログラムを組んだことがある方なら、一度は経験したことがあるのではないでしょうか? そこで今回は、なぜ0.1+0.2が0.30000000000000004になるのか、この誤差の原因と回避する方法をまとめてみました。
プログラム

HTMLテーブルのヘッダを「行列固定」する方法(FixedMidashi)

業務系のシステムでは、扱っているデータが多いため、一覧表が巨大になることがよくあります。WEBベースで開発している場合は、一覧表をHTMLテーブルで作ることが多いかと思いますが、表が巨大だと上下左右にぐりぐりスクロールして閲覧することになり、行や列のヘッダ(見出し)が見えなくなってしまいます。エクセルのウインドウ枠(行列)の固定のように出来ればいいのですが、HTMLではこれが簡単にはできません。そ...
プログラム

入力チェックコードを PHP と JavaScript で共通化する方法

フォームに入力された値に行う、入力チェックは(バリデーションチェックとも言うらしいです)大きく分けて、JavaScriptで行うクライアント側チェックと、PHPなどで行うサーバ側チェックの2つがあります。当然両方で入力チェックを行うことが望ましいのですが、同じようなコードを、クライアント側とサーバ側で書かなければなりません。そこで今回は、入力チェックコードをPHPとJavaScriptで共通化する...
データ分析

dimple.js 積上げ棒グラフの作り方

dimple(ディンプル)は、さまざまなグラフを簡単に作成できるJavaScriptライブラリです。データ可視化ライブラリの定番D3.jsと合わせて使います。D3.jsは柔軟性が高く、複雑なデータを可視化することが得意ですが、グラフの描画処理を自分で作成する必要があります。描画処理のコードを書くのは、なかなか大変ですが、このdimpleライブラリを使えば、複雑なグラフを、わずか数行のコードで作成す...
プログラム

Twitter API search/tweets で 100件以上のツイートを取得する(PHP)

Twitterのツイート検索API(search/tweets)で、取得できるツイート数の上限は100件です。分析用途で使うには、ちょっと件数が少ないですね。そこで今回は、TwitterAPIで100件以上のツイートを取得する方法をご紹介します。
データ分析

PHP 政府統計 API の使い方メモ(e-Stat)

政府統計の総合窓口(e-Stat)のAPI機能では、各府省が公表する統計データを、APIを使って簡単に取得することができます。以前は各府省ごとに、統計データを公開していましたが、近年この、政府統計の総合窓口サイトの1つにまとめられ、昨年からはAPI機能の提供も開始されました。政府統計APIの使い方はいたって簡単なのですが、統計データの種類、量ともに膨大なため、データ取得までの流れが、他のWEBサー...
プログラム

PHP 5分で出来る!Twitter API アプリケーション認証(Application-only authentication)

ツイッターAPIの、アプリケーション認証(appauth)を使うと、15分あたりのAPI利用上限を、ツイート検索が180回から450回に、タイムライン取得は180回から300回に増やすことができます。ツイート探索系のアプリを作るのには、ちょっと嬉しい仕組みですね。そこで今回は、PHPからTwitterAPIアプリケーション認証を行い、ツイート検索をする方法をご紹介したいと思います。また、簡単にアプ...
プログラム

MeCab と php-mecab のインストールメモ(CentOS7.1)

MeCabは、日本語の文章を解析して、単語に分割してくれるソフトウェアです。WEBサービスを作るにあたってMeCabをPHPから使う必要があったので、今回はphp-mecabもインストールしました。MeCab(めーきゃぶ)の名称は、開発者さんの好物「めかぶ」にちなんで付けられたそうです。ふと、めかぶをつまみに一杯やりたくなりました。(^^)
プログラム

NetBeans での Git リポジトリサーバへの接続方法

NetBeans(ネットビーンズ)は、無償で使えるオープンソースソフトウェアの、統合開発環境(IDE)です。Java、PHP、HTML5、C/C++、Groovyなどのプログラミング言語に対応しています。前回の記事で、Gitリポジトリサーバの構築方法をご紹介しました、今回は、構築したGitリポジトリサーバにNetBeansから接続して、リポジトリのクローンなどの操作をしてみたいと思います。
プログラム

Zabbix ドメイン名ハイジャック(ドメインの乗っ取り)を監視

2014年11月5日国内の「.com」サイトでドメイン名の登録情報が不正に書き換えられ、攻撃者が用意した不正サイトに誘導されるドメインハイジャック(ドメインの乗っ取り)が複数発生しているそうです。ドメイン名管理者としての対策は、利用しているレジストラやリセラーのログインアカウントを適切に管理し、定期的にDNSサーバの登録情報が正しく設定されているか(改ざんされていないか)確認することが求められてい...
プログラム

Zabbix 外部スクリプトで天気を監視(OpenWeatherMap)

Zabbixの外部スクリプトを使って天気を監視してみました。仕組みとしては、気象データの無料APIを提供するオンラインサービスOpenWeatherMapから天気をデータを取得してZabbixデータベースに記録します。
プログラム

NetBeans phpcsmdプラグイン Zendコーディング規約のカスタマイズ

NetBeansでPHPCodeSnifferを使えるようにできるphpcsmdプラグインで、Zendコーディング規約をカスタマイズする手順をメモしておきました。
プログラム

NetBeans + PHP CodeSniffer プラグインのインストール

NetBeansは無償で使えるIDE(統合開発環境)です。NetBeansはプラグインを追加することにより機能を拡張できるのですが、その一つに、プログラムコードがコーディング規約に則っているかを自動チェックできる、PHPCodeSniffer(PHPコードスニファー)用のプラグインあります。NetBeansに、PHPCodeSnifferプラグインを追加すれば、プログラムを書いているそばからコーデ...
プログラム

PHP CodeSniffer ルールセットのカスタマイズ方法

PHPCodeSniffer(PHPコードスニファー)は、PHPやJavaScriptで書いたプログラムが、決められたコーディング規約に則って書かれているかをチェックできるツールです。対応しているコーディング規約は、Zend、PEAR、PSR2などがあります。私は普段、ZendのPHPコーディング規約に則って、プログラミングをしているのですが、一部例外の規約を設けているため、PHPCodeSnif...