CATEGORY

システムエンジニアリング

開発・検証用のFTPサーバ(IIS)を構築

FTPで外部連携するためのプログラムを開発する際に、接続先のFTPサーバの準備に困る場合があります。 ここでは、Widnwos10上に開発・検証用のFTPサーバを構築するための手順を説明します。 「IIS(FTPサーバ)のインストール」でIISをインストール後、用途に応じて「認証が必要なFTPサイトの構成方法」または「匿名アクセスが可能なFTPサイトの構成方法」を実施してください。 前提 開発者が […]

承認欲求が強くて失敗したSEの話

愚直に成果を出すことしか知らなかったシステムエンジニアが、デスマーチなプロジェクトで心を病みそうになったが、「嫌われる勇気」を読んで逆に強くなったお話です。 モノ作りが好きだが「コミュニケーションが苦手」「会議での発言が苦手」という私が、デスマーチを機に、心の悩みを解消し、強い意志と意見をもって皆と仕事をできるようになりました。 今年、ITコンサルの会社に転職します。 リンク これまでの自分 粘り […]

Javaによるzipファイルの安全な解凍方法

以前、業務アプリ(Java)でzipファイルの操作が必要となったため、Javaにおけるzip圧縮解凍について調査しました。また、zip4jを使った圧縮・解凍についても説明しました。 ここでは、もう少し業務使用を考慮した、安全なzipファイル解凍について説明します。 安全なzipファイル解凍方法 ここで説明するサンプルは、Webアプリ上やバックエンドサーバ上で動作するアプリで使用すること前提とします […]

Javaでのパスワード付きzipファイルの圧縮/解凍方法(ZipCrypto/AES)

先日、JavaでのZIP暗号化の考察という記事を書きましたが、zip4jのメンテナンスが再開されており、バージョン2系が公開されていましたので、これを使って通常のzip圧縮/解凍、パスワード付きzip圧縮/解凍(ZipCrypto, AES256)のサンプルを作成してみました。 概要 zip4jはSrikanth Reddy Lingalaさんが開発しましたが2013年にメンテナンスが止まっていま […]

JavaにおけるFileとPathを使ったパス操作

サーバ側でのzipファイルの解凍等の際に、意図しないディレクトリやファイル(ディレクトリトラバーサル攻撃)へのアクセスを防ぐための検証として、絶対パスを正規化したい場合がある。 Fileクラスを使ったサンプルはあるが、Pathを使ったサンプルがなかったため、検証してみた。 検証結果 結果として次の通りでした。 検証で使ったコードは次節を参照のこと。 Fileクラスを使う場合、File#getCan […]

JavaでのZIP暗号化の考察

法務系業務を行うシステムを設計するにあたり、次のような要件がありました。 CSVファイルの暗号化方式として、当初からパスワード付きZIPファイルの使用を検討していたため、ZIP圧縮を使用する前提で調査しました。Excelの暗号化については、別の記事で説明します。 当該システムはJavaEEで構築する前提であったため、Java前提の調査となります。 機密情報を記載したCSVファイルまたはExcelフ […]

OWASPが推奨する強力なパスワード

Webアプリケーションのセキュリティの標準化や推進を行うOWASPでは、強力なパスワードの使用を推奨しているので、それをまとめた。 強力なパスワード “Implement Proper Password Strength Controls”から意訳です。 2019年10月時点での資料に基づいており、セキュリティトレンドによって内容が変わる場合があるので、オリジナルのサイトを […]

Linux管理者おすすめ: viエディタの最小限コマンド

新入社員やUnix/Linux未経験がviで苦戦するのをよく見ます。 ネットではコマンドの説明を主とした内容が多く、このような資料を見てviを使うと、モードの違いが分からず、思ったように編集できないことが多いです。また、覚えることが多いなぁ…どこまで覚えればいいのだろう?といった不安を抱くこともあります。 ここでは、viの前提となる考えや、必要最小限の操作を行うためのviコマンドの説明 […]

開発・検証用のダミーメールサーバの構築(fakeSMTP)

概要 アプリ開発や検証等でメールサーバを利用したい場合がある。 プロジェクトで共有の検証用メールサーバを構築できると効率が良いか、その準備が間に合わなかったり、使用者が限定的な場合は、使用者の開発環境上に構築した方が手っ取り早い。 ここでは、fakeSMTPというダミーのメールサーバを構築する方法を説明する。 fakeSMTPのインストール 公式サイトからfakeSMTP.jarをダウンロード・展 […]

ftp, ftps, sftpの違い

開発対象システムの連携先システムとして、ftpsやらftpsサーバが指定される場合がある。 私の場合、開発標準の役割を担う場合が多く、これらの仕様を把握し、動作確認や単体テスト用のダミーのサーバを用意する必要がある。そのための前提として、ftpと名のつくプロトコルの概要を整理した。 FTPSはSSL/TLSを使って通信路を暗号化したFTP拡張、SFTPはSSHプロトコルをベースにしたFTPとは異な […]