JavaにおけるFileとPathを使ったパス操作
サーバ側でのzipファイルの解凍等の際に、意図しないディレクトリやファイル(ディレクトリトラバーサル攻撃)へのアクセスを防ぐための検証として、絶対パスを正規化したい場合がある。 Fileクラスを使ったサンプルはあるが、Pathを使ったサンプルがなかったため、検証してみた。 検証結果 結果として次の通りでした。 検証で使ったコードは次節を参照のこと。 Fileクラスを使う場合、File#getCan […]
サーバ側でのzipファイルの解凍等の際に、意図しないディレクトリやファイル(ディレクトリトラバーサル攻撃)へのアクセスを防ぐための検証として、絶対パスを正規化したい場合がある。 Fileクラスを使ったサンプルはあるが、Pathを使ったサンプルがなかったため、検証してみた。 検証結果 結果として次の通りでした。 検証で使ったコードは次節を参照のこと。 Fileクラスを使う場合、File#getCan […]
法務系業務を行うシステムを設計するにあたり、次のような要件がありました。 CSVファイルの暗号化方式として、当初からパスワード付きZIPファイルの使用を検討していたため、ZIP圧縮を使用する前提で調査しました。Excelの暗号化については、別の記事で説明します。 当該システムはJavaEEで構築する前提であったため、Java前提の調査となります。 機密情報を記載したCSVファイルまたはExcelフ […]
Webアプリケーションのセキュリティの標準化や推進を行うOWASPでは、強力なパスワードの使用を推奨しているので、それをまとめた。 強力なパスワード “Implement Proper Password Strength Controls”から意訳です。 2019年10月時点での資料に基づいており、セキュリティトレンドによって内容が変わる場合があるので、オリジナルのサイトを […]
新入社員やUnix/Linux未経験がviで苦戦するのをよく見ます。 ネットではコマンドの説明を主とした内容が多く、このような資料を見てviを使うと、モードの違いが分からず、思ったように編集できないことが多いです。また、覚えることが多いなぁ…どこまで覚えればいいのだろう?といった不安を抱くこともあります。 ここでは、viの前提となる考えや、必要最小限の操作を行うためのviコマンドの説明 […]
概要 アプリ開発や検証等でメールサーバを利用したい場合がある。 プロジェクトで共有の検証用メールサーバを構築できると効率が良いか、その準備が間に合わなかったり、使用者が限定的な場合は、使用者の開発環境上に構築した方が手っ取り早い。 ここでは、fakeSMTPというダミーのメールサーバを構築する方法を説明する。 fakeSMTPのインストール 公式サイトからfakeSMTP.jarをダウンロード・展 […]
開発対象システムの連携先システムとして、ftpsやらftpsサーバが指定される場合がある。 私の場合、開発標準の役割を担う場合が多く、これらの仕様を把握し、動作確認や単体テスト用のダミーのサーバを用意する必要がある。そのための前提として、ftpと名のつくプロトコルの概要を整理した。 FTPSはSSL/TLSを使って通信路を暗号化したFTP拡張、SFTPはSSHプロトコルをベースにしたFTPとは異な […]
皆で使用するCD/DVDはISOイメージファイルとして、ファイルサーバ上の共有フォルダに配置する運用を想定しています。Hyper-V上の仮想マシンのCD/DVDドライブに、これらのISOイメージファイルを読み込ませたい場合が多々ありますが、特に設定しないとアクセス拒否エラーになってしまいます。 Hyper-Vマネージャ経由でリモートのISOファイルを選択する場面では、操作ユーザが権限を持つ場所のフ […]
アプリやミドルウェの動作の正常性確認や問題発生時の問題切り分けのために、HTTPリクエストやレスポンスのヘッダやボディを確認したい場合がある。Java系のアプリではApacheのHttpClientが使用されることが多いため、ここではApacheのHttpClientによる通信をダンプ(ロギング)する方法を説明します。 (ここではApache HttpClient 4.5を前提として説明します。H […]
DELLのノートPCであるVostro 5370を購入しました。 既定ではWindows 10 Homeがインストールされていましたが、会社用のボリュームライセンスのWindows10 Enterpriseをインストールしようした際のトラブルシューティングの記録です。 事象 Windows10をUSB起動でインストール中に、インストール先のディスク(パーティション)を選択する画面が表示される。通常 […]
boostrapでラジオボタンやチェックボックスを使用する場合、div, input, label要素にbootstrapのCSSクラスを指定する必要がある。 JSFでラジオボタンを使用する場合、selectOneRadio, selectBooleanCheckbox, selectManyCheckbox等を使用するが、これらのJSF要素が出力するHTML要素のコントロールができず、上記のよう […]