カテゴリー
システム開発

パスワード漏洩事故の原因

世間ではシステムのパスワードが漏洩したというニュースが度々聞かれます。その原因は外部からの悪意のある侵入者である場合と、内部の人間によるものとがあります。あるシステムのユーザアカウント管理テーブルを見たときに驚きました。パスワードが平文(パスワードがかかっていない状態)で保存されているのです。もちろんユーザアカウント名も一緒に載っていますので、このテーブルのリストを出力すれば、大量のアカウント情報を手に入れることが可能です。

パスワードを忘れたときにヘルプデスクに問い合わせると思います。この時に何らかの本人認証の有無にかかわらず、最終的にパスワードが伝えられるようでしたら、セキュリティー観点での脆弱性があると考えてよいでしょう。そもそもパスワードは暗号化された状態でデータベースに保存されますし、復号(暗号化を解くこと)困難にすべきです。ですからヘルプデスクでパスワード忘れのユーザに対してパスワードを伝えることは本来出来てはいけないはずです。

このようなパスワードを平文で保存しているものは、古くから使い続けているシステムで見かけることが多いように思えます。システムのリプレースが後回しになり、脆弱性が残ったままとなっています。まずはセキュリティー対策が出来ているかどうか、そして対策が必要であれば早急に対応を検討すべきでしょう。

カテゴリー
システム開発

データベースからの検索速度が低下する場合

データベースを使った検索システムの不具合に、検索速度が著しく低下することがあります。開発段階では問題なかったが運用を始めてから気づくことがほとんどではないでしょうか。扱うレコード数が増えてくるにつれて検索速度が低下します。さらに検索のためのクエリが適切でないと、レコード数が増えるにつれてパフォーマンスは著しく低下することがあります。

先日も上記のような不具合についての相談を受けました。コードを確認したところ、いくつかのアンチパターンに相当するロジックを見つけました。詳細の説明はしませんが、検索キーに対して適切なインデックスが設定されていないこと、複数段階の絞り込み条件において抽出結果が小さくなるものが後回しにされていたこと、マッチングに置いてその都度演算が行われていたことがパフォーマンスの低下の原因になっていました。抽出条件のロジックとしては正しくはありましたが、データベースシステムに対して、その動作にまで考慮した最適化が行われていなかったのです。SQLについてはパフォーマンスの低下を招く書き方は、アンチパターンとして広まっています。これを勉強するとパフォーマンスの低下は防げることが多いでしょう。

ここに紹介する書籍が良くまとまっており、お勧めします。

カテゴリー
デジタルトランスフォーメーション(DX)

脱ハンコの前に考えるべきこと

脱ハンコ、押印の省略について議論が活発化しています。業務要件ごとにハンコにどういう役割を期待しているのかを検討しないことには押印を廃止していいのかどうか判断できません。しかし世の議論を見ているとハンコを廃止することが目的のようになって見えるのは私だけでそうか。

ハンコを廃止する目的は業務の効率化だったはずです。コロナ禍で押印のためだけに出社をしなければならないことに、非効率でありリモートワークの障害になっていることが取りざたされました。押印の役割は主に、本人の認証、決裁フローにおける承認・確認の履歴が考えられます。印鑑証明と印影を照合する作業は、その印影の持ち主が正しく本人(個人、法人ともに)であることを証明することになります。契約書の取り交わしでは必要になります。一方会社内の決裁フローにおける書類については捺印が必要とされていても、その印影について本人が押したかどうかチェックすることはまずないでしょう。書類にハンコを押してもらうために、確認者や承認者の所在を確かめ必要書類を携え走り回るというのが実態です。

これは確認承認フローを電子化することで解決します。ライトにするのであればメールで確認、承認を得ることでも良いでしょう。履歴を残す必要があればなんらかのシステムの導入を検討するのが良いでしょう。ログイン認証があれば、だれがいつどの申請に対して確認承認を行ったかの履歴を残すことができます。パッケージソフトもいくつも出ていますので、コストと業務内容に合わせて選ぶと良いでしょう。

カテゴリー
デジタルトランスフォーメーション(DX)

EC-Cube 3系のレイアウト崩れ不具合

EC-cube でECサイトを運営されているお客様から、画面表示のレイアウトが崩れるという報告を受けました。調査すると、レンタルサーバーのPHPのバージョンアップがきっかけとなっていることがわかりました。

レイアウト崩れしたEC-Cube 3系の管理画面

レンタルサーバーのPHPバージョンが7.2でありそのサポート期限が2020年11月だったことから、最新の7.4にバージョンアップを行っていました。EC-Cube 側がPHP7.4に対応していないようです。

急遽PHPバージョンを7.3に変更することでレイアウト崩れを解消することができました。

ひとまずはこれで対策ができましたが、PHP7.3のサポート終了が2021年11月になっていますので、それまでにはPHP7.4に対応しているEC-cube4系または別のECサイトシステムへのリプレイスが必要になることを提案していくことになります。

カテゴリー
デジタルトランスフォーメーション(DX)

WordPressでキャパ管理システム構築の限界

Web制作会社様から相談を受けました。ある商材の注文受付フォームに、配達先の地域別に訪問可能日を反映したカレンダーUIを実装したいとのことでした。郵便番号を入力すると自動的に都道府県、市区町村名がフィールドに展開するものはよく見かけると思います。この時に展開された住所地をキーにしてデータベース内の地域別配達日を抽出して、動的にカレンダーの選択可能日に反映させる仕組みになります。

制作会社様はWordpressを使った製作が得意なのですが、この機能を実現するためのプラグインを探してみたものの、要件にフィットするものが無く、今回の相談に至ったということでした。

WordPressはWebページを作成するには大変便利です。プラグインで機能の追加ができますが、その仕様はプラグイン次第です。プラグインで出来ない機能はさらにプラグインのコードに手を入れたり自らプラグインを書くことになります。機能の実現性と自由度がWordpressを使うことでかえって制限させられてしまうのです。

今回の提案ではWordpressを使わずにPHPフレームワークとCSSフレームワークを使ったWebシステムの構築を提案しました。モックを作成するのに2日ほどで仕上げました。当初要件にはなかったのですが、管理者画面による注文状況確認や配送地域ごとの注文数の集計など機能を拡張することも容易に行えます。単に注文を受け付けるためのWebフォームから、配送業務をコントロールするシステムへと発展するということなのです。これによってお客様の業務効率化に大きく貢献します。

業務効率化はシステム化がカギです。相談を随時承っております。