2020-01-01から1年間の記事一覧

手元でPowerDNSのAPIを叩くためのDockerイメージを作った

PowerDNSのAPIを手元で叩ける環境が必要だったので用意しました。 要件は以下です。 ローカルで動作すること 最低限ビルトインのAPIが動くこと digで問い合わせができること インストールする こちらを参考にDockerfileを作成します。 https://repo.powerdns…

Smartyでのエスケープをまとめた

SmartyでのXSS対応方法をまとめます。 足りてないパターンがあれば追加予定。 参考 『体系的に学ぶ安全なWebアプリケーションの作り方 第2版』 Smartyのコード https://github.com/smarty-php/smarty/blob/478f8a29b4da07b7d18164cc8554b967a2036678/libs/pl…

オープンソースのSNSをDockerで動かしてみたら懐かしすぎた

こんにちは、たかぴーです。 このエントリは、GMOペパボエンジニア Advent Calendar 2020 - Adventarの8日目の記事です。7日目はしばっちさんの「AWSでDNSをRoute53を使わずに構築する」でした。 社内のPHPアプリケーションをDocker化するにあたりどういった…

書き込みが必要なDockerコンテナをReadOnlyで動かせるようにする

コンテナを触っている人であれば当たり前っちゃ当たり前のテクニックな感じだと思いますが、最近k8s環境でDockerコンテナを読み取り専用で動かすことができたので、メモしておきます。 Dockerコンテナを安全に運用するための手段の一つとして、コンテナを読…

コンテナイメージの脆弱性スキャンツールTrivyを使ってみる 〜とりあえず試す編〜

Docker Bench for Securityに引き続き、コンテナイメージの脆弱性スキャンツールTrivyを使ってみます。 Docker Bench for Securityについてのエントリーはこちら takapi86.hatenablog.com Trivyとは何か Docker Bench for Securityがコンテナイメージの作成…

Docker Bench for Securityを使ってみる 〜とりあえず試す編〜

これは何? CIS Docker BenchmarksというDockerのセキュリティ基準に沿って、自動診断してくれるツール 診断項目はこんな感じ Host Configuration Docker daemon configuration Docker daemon configuration files Container Images and Build File Containe…

Capistrano3で並列制御を行う

Capistranoでは、デフォルトではすべてタスクが並列で実行されるようになっていますが、次の設定で並列実行できるサーバの数を制御できます。 設定方法 タスク個別に設定する場合 task :uptime do on roles(:all), { in: :groups, limit: 5, wait: 2 } do ex…

GETリクエストのボディはPHPで取得できるの?試してみた

定期的に業務で不正なリクエストがないか見ています。 その調査でふと、PHPはGETリクエストに含まれるボディの値が取得できてしまうのか、 取得可能であればそこも気にしなければなぁ、ということで調べてみました。 GETリクエストのボディ? GETは指定したU…

Ruby技術者認定試験(Gold)どうやって勉強していたっけ?というのを思い出した

2年前くらいに、Silver受かったときにブログを書いたのですが、 https://takapi86.hatenablog.com/entry/2018/05/13/230504 その後、Goldを受かったまま何もアウトプットできていなかったので、書いていこうと思います。 2年前の話なので、今は状況が変わっ…

phpのmemcachedライブラリを2系から3系にあげたらSession Lockに関するワーニングが頻繁に発生するようになったので対応した

PHPバージョンアップに伴い、memcachedライブラリを2系から3系にバージョンアップしたところ、以下のようなエラーが度々発生するようになってしまいました。 (結果的には、ローカル環境で気付けたため、本番導入時には解決した状態で適用することができまし…

Railsチュートリアル用にdocker環境を作った

社の新人研修でRailsチュートリアルをやっていくことになったのでDocker環境を用意した。(僕は講師陣の方 github.com 結果的にはDockerとRails両方覚えなければならないので混乱させてしまう恐れがあるということで、ローカル環境でやっていこうということ…

デバッグツールとしてBurp Suiteを使っている

例えば、 ファイルのアップロード処理 CSVのインポート処理 入力項目の多い登録処理 上記のような処理をE2Eでデバッグ実行しようとすると、ファイルを準備したり値を画面からいっぱい設定したり・・・それを何度も実行しようとするとそこそこ手間だったりし…

capistranoデプロイ時にデプロイするファイルをウィルススキャンする

プライベートの検証環境を使って、 capistranoデプロイ時にデプロイするファイルをウィルススキャンするようにしてみました。 やっていることは、capistranoデプロイ時にclamdscanしているだけです。 上手くいってそうなので、メモとして残しておきます。 使…

smartyのエスケープについて見直す

SmartyではPHPの値を出力するとき、デフォルトではエスケープされていないので、 XSS対策として、明示的にエスケープしなければなりません。 XSS対策としての正しくエスケープを行うには、内部でどのような動きをしているのか把握する必要があるので、 見直…

開発環境としてChromiumOSを使ってみる(インストール編)

Chromebook最近すごいですね。 存在自体は、数年前くらいから知ってはいたのですが、去年の年末あたりからよくCMでも見かけるようになりました。 www.youtube.com. 海外の教育現場では、割と一般的に使われているという話を聞いたことがありますが、 最近だ…

Docker + PhpStorm 環境でXdebugのリモートデバッグが使えるようにするためのメモ

PHPのデバッグには、Xdebugを使っていますが、いつも設定の仕方を忘れてしまうのでメモしておきます。 環境 Mac Docker(Docker Desktop for Mac, Docker Machineどちらでも) PhpStorm Docker側の設定 peclでXdebugをインストールします。 Dockerfileに以下の…