ニクニクドットミー

カッコいいおっさんを目指すエンジニアの厳かなブログ

09/19 ~ 09/25のふりかえり

時には逃げてもええんやで

仕事

  • 既存のアプリのコードを読んでちょっと理解を深めた
  • Goで書かれたアプリの改修をやっていく
  • ヘルスチェックの講座があってストレッチをやっていくぞという気持ちになったのでチームでタオルを使ったストレッチをやってみた
    • 座りっぱりなしはかなり体に悪いということで卓上スタンディングデスクをポチった

プライベート

  • フィリピン留学のメンバーと2年ぶりにオンラインで再会した
    • 久しぶりにオンライン飲み会をしていろんな話で盛り上がった
      • コーチング、仕事、英語などなど
      • 昔の職場でパワハラを受けていたという話をした時に、自分は「その状況から逃げた」とネガティブに思っていたけど、逃げるのは正しいよねという話になった。人は追い込まれると2つの選択肢を取るが「相手を○す」or「自殺」の2択になるらしい。『自分を追い詰めてしまう前に「逃げた」のは正しい選択だったよね』と言われてなんだかホッとした。
      • リモートで働くのは仕事の関係性を築くのが難しいよねという話。気を許して話ができる仲ほど関係性がないとストレスのはけ口がなくてツライというもの。これは思い当たることが多々あって、リモートの状況だと会社以外にもコミュニティを作っていくのが大事になると思う。
  • ギャスパリのサプリが届いた
  • 酔った勢いで奥さんに「フランス語でエクレアの意味って知ってる?正解したらケーキを買ってあげる」と言ったら秒で正解したので近所のおいしいケーキを買った
  • 速習TypeScriptを読了した
    • 静的型付け言語は書くのが楽しい
  • https://www.amazon.co.jp/%E9%80%9F%E7%BF%92-TypeScript-%E7%AC%AC2%E7%89%88-%E9%80%9F%E7%BF%92%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E5%B1%B1%E7%94%B0%E7%A5%A5%E5%AF%9B-ebook/dp/B086JKVGPBwww.amazon.co.jp

これまで働いてきた会社のうち、2社でパワハラがあった。「てめぇーいますぐクビにしてやろうか」と社長に言われた時は「こんな人が世の中にいるのか。。。」と驚いたのを覚えている。当時は四面楚歌に近い状態で精神的にも辛かったけど、理解してくれる同僚がいたので本当に助かった。
結果的に辞めることにはなったけどもしあのまま続けていたら自分を追い込んでしまったと考えると「逃げる」選択を取ってよかったと思う。
もし身近に似たような状況の人がいたら「逃げてもええんやで」と声をかけるに違いない。

See you next time:)

09/12 ~ 09/18のふりかえり

今週は1on1をやりまくったそんな週

仕事

  • 1on1のメンターをやる機会が今後出来てきそうなので社内のSmallTalkという仕組みを使って雑に相談をしてきた ※別でブログを書く
  • 「褒められるのが苦手」という話をとあるエンジニアグループでしたところ共感してもらえてたのだが、なんでだろう?と深堀したくなったので社内のSmallTalkコーチングを受けてみた ※別でブログを書く
  • SQSについて調べる必要があったのでBlackBeltを読み込むなどした
    • FIFOにはGroupIDを付与してキューをまとめることができるのを知らなかったので勉強になった(SAAを取得してるんだけどな。。。)
  • ローカルでアプリを動かせるようになってうれしくなった
    • コードを読む時間を取っていろいろと内部の理解を深めたい。キャリアを考える上で「コードを書けるちゃんと読めるのは必須」になると思っているので頑張る所存
  • もっとSRE的な要素をチームに入れていきたいなーとぼんやり思う(メトリクスを毎朝見たり、アラートチェックしたりはしているけど、ユーザーにどう影響しているだろうとかやりたい
  • 健康診断で身長が1cm伸びていたのでニコリ

プライベート

  • 結婚して9年と一ヶ月記念&付き合ってから14年と1ヶ月記念をした(ちょっと早めにした)
  • 久しぶりにジムで筋トレをしたがめっちゃよかった(普段は家トレ)
  • ギャスパリのサプリをえいやで買ってみたので楽しみ
    • 年内にあと-5kgして来年からはバルクアップしていきたい(6月からダイエットを開始して1ヶ月に-1kgほど体重は落ちている)
  • MoneyForwardのFP相談を申し込んでみたので家計や投資について相談をしてみる予定なので楽しみ(無料)

See you next time:)

Webの基礎 脆弱性について改めて調べてみた XSS,CSRF,SQLインジェクション,OSコマンドインジェクション

以前、 blog.nikuniku.me というタイトルでヘッダーについて改めて調べてみた。
記事内に

その他のヘッダーについても調べておきたいし、ウェブセキュリティ周りも復習していく予定。

と書いた通り、良く耳にするウェブの脆弱性について調べてみた。

出力に起因する脆弱性

  • XSS

    • 攻撃方法
      • 攻撃スクリプト脆弱性のあるサイトに登録し(DBに保存するなど)訪問した利用者のブラウザ上で悪意あるスクリプトが実行されてしまう(格納型)
        • 入力した内容を登録できる形式のサイトがあった場合にスクリプトタグを登録するなどして攻撃をする。
      • 悪意のあるURLをクリックさせ、脆弱性のあるサイト上でスクリプトを実行させ、クッキー情報などを取得する(反射型XSS
        • 例えば、http://example.com/keyword=usernameのようなURLがあった場合にkeyword=<script>document.cookie</script>をURLに含んだ状態でサイトに遷移させ、サイト上でスクリプトを実行させるなど。
    • 対策
      • <"に対するエスケープ漏れが原因なので、サニタイジングし文字列として画面に表示する。
      • 入力時にvalidateを行い、入力値として数値を期待している場合は数値以外が入力された場合にエラーとする。
      • WAFを導入しXSSに該当するリクエストを遮断する。
  • SQLインジェクション

    • 攻撃方法
      • SQLの呼び出しに不備があるために発生する
      • 例えば、SELECT id FROM users WHERE id = '$id';というSQLがあった場合、$id1';DELETE FROM usersという文字列を渡されてしまうと結果的にこのようなSQLとなりテーブルが削除されてしまう。
        • シングルクォーテーションで囲った値をユーザーが外部から渡す(GETやPOSTの値)場合に悪意あるSQLを組み立てられてしまう。
      • SELECT id FROM users WHERE id = '1';DELETE FROM users;
    • 対策
      • プレースホルダを利用してSQLの組み立てを行う。
      • SELECT id FROM users WHERE id = ?;
        • プレースホルダには2種類あり静的、動的があり、静的プレースホルダを利用するのが良い。
          • 静的(データベース側でがんばる)
            • 値のバインドをデータベースエンジン側で行う。最初にプレースホルダーが付いたSQLがデータベースに登録される。その後、バインド値がデータベースに送られSQLが実行される。
            • SQL文がバインド前に確定するため、プレースホルダに渡すバインド値をクォートする必要がない。そのため、シングルクォートのエスケープ処理が必要ない。
            • 静的プレースホルダをPrepare Statementと呼ぶ。
          • 動的(アプリケーション側でがんばる)
            • バインドをアプリケーション側で行う。バインド時にリテラルは適切に構成されるため、処理系にバグがなければSQLインジェクションは発生しない。
            • 利用するライブラリにエスケープ処理が依存してしまう。
  • コマンドインジェクション

    • 攻撃方法
      • 外部から受け取ったパラメーターをOSのコマンドの引数に渡して実行する場合に悪意のあるコマンドを渡すことで実現する。
      • 例えばアプリケーションからsystem("/usr/sbin/sendmail $mail");を実行する場合に$mail;cat /etc/passwdが渡されるなどして意図していない処理を実行させる。
    • 対策
続きを読む

2021/09/05 ~ 2021/09/11のふりかえり

ワクチン2回目の副反応やばいなという週だった

仕事

  • 久々にEBSのマウント/アンマウントを実施した
    • 久しぶりで緊張したけど面白いなーと思った
  • EBSの拡張に掛かる時間を測りたいと思った
  • プライベートに書くけど妻がワクチン2回目を接種したら副反応でダウンしてしまい、看病が必要になったので午後休みを取った
    • 健康診断がその日にあったけどリスケした

プライベート

  • 土地を買うか迷っていてネットで探しているんだけど土地の説明がわけわからなくて腹が立ってきたので土地に関する書籍を3冊ほど買った
    • 読んで感想を書くつもり
  • 親父が地元に土地があるとのことでgoogle mapで見たけどちょっと微妙だった
    • 両サイドを家で挟まれていた
    • とはいっても現地で見てみると以外と良かったりするのかもしれない
  • ふるさと納税で肉とホンビノス貝を注文した
  • 妻がワクチンの副反応で高熱が出てしまったので看病していた
    • やっと落ち着いたのでなにより
    • ストローは寝たきりの人に最強のツール(横になったままで飲める!)
  • ワクチン2回目の死亡例を聞いてとても不安になってしまい、2回目のワクチンをキャンセルしようかと思った
    • 不安と戦うには情報収集だと思っていろいろ調べた
      • ワクチン接種後にどういう症状が出るのか、予兆はあるのか
      • 違和感を感じたらどこに連絡するのか(明らかに具合が悪くなったら救急車を呼ぶ)
      • 外出時に2回目のワクチンを接種した妻になにかあったらと思い、猫の監視で使っているカメラを起動しておいたり、カメラ越しに異変がわかるように合図を決めておくなどを計画した
    • いまは不安はだいぶ解消されている

See you next time:)

2021/08/29 ~ 2021/09/04のふりかえり

ワクチン打ったりウマ娘の3rdライブを観たりそんな週だった

仕事

  • チームメンバーとパワーランチをした
    • パワーランチはミーティングとランチを兼ねたものみたいだが、今回は業務とは関係ない話題でランチをした
  • 1回目のワクチンを打つためにワクチン休暇を取得した
    • 楽天のクリムゾンハウスで接種したけどオフィスは広くて綺麗で「あーなんかオフィスって懐かしいな」という気持ちになった
    • 対応してもらったスタッフさん、お医者さん、そして楽天に感謝
    • 帰りに芋のお菓子を買った
  • インシデント指揮者を経験
  • 引き続きTerraformを書いている
  • 問いのデザインの読書会が終了
    • 実はまだ全部読めていない...

プライベート

  • 仕事の項目でも書いた1回目のワクチン接種で副反応が出て発熱と倦怠感があった
    • 快復するまで約1日半かかったが発熱に関してはカロナールがよく効いた
    • 倦怠感がなかなか強く、なにか取り組むこともできそうになかったので漫画を読んで寝てた
  • 自分で使う予定のメモアプリのワイヤーフレームを紙とボールペンで書いたけど、我ながら画力もセンスもないのが面白い
    • とはいってもそれで作業が進められそうなのでヨシッ!
    • ワイヤーフレームを作るにはたくさんのツールがあるだろうけど使いこなすのに時間がとっても掛かりそうだったので手っ取り早い手段を取った
  • ウマ娘 3rdライブのDay2を観た(8/29)
    • めっちゃよかった
    • 2022年に4thライブも決定したのでそれまでにがっつりバルクアップしてライブを現地観戦したい
    • マルチアングルを使ってみたけどメインとは違う角度でライブが観られるのはまた面白い発見があるのでこのプランでチケットを買って大正解だった

See you next time:)

2021/08/22 ~ 2021/08/28のふりかえり

暑い。暑すぎるぜ。

仕事

  • 体調が悪い日が続いて月曜はほぼ休んだ。お陰様で回復。
    • ISUCON疲れかもしれない。
  • 問いのデザインの3章に出てくるプロセス目標をちゃんと立てておくのは大事だなとあとで気づいた。
    • これはプロジェクトが終了したあとに「このプロジェクトで他チームとのコミュニケーションが活発になって連携しやすくなった」というような副産物を前もって定義しておこうというもの。
      • いま進めているプロジェクトでは「チーム全体/チーム内で決められてなかったこと」をFix出来たり(Fixしよう進めたり)とプロジェクトの目標達成までの道のりで良い副産物が出ている。定義しておくとさらに出来ることが増えたりすると思っている。
  • 1on1をしたときに「maaaatoさんと話していると前向きな気持ちになってきますね」と嬉しいフィードバックをもらえた。なにか特別なことを言ったつもりはないけど、いまチームで取り組んでいることなどを話したのがよかったのかもしれない。
    • 割と自分はネガティブに取らえてしまって気分が落ちてしまうことが多いなと思っていたのだけど、ストレングス・ファインダーを去年の年末にしたときに「ポジティブ思考」となっていて「え、そうなのか」と驚いたことがある。
    • 最初はネガティブに捉えるのだけどあとから「でもこれってこういうことでいいことだよな」とポジティブな面を見つけて気持ちを盛り返すことがあったなと振り返りが出来たことがある。
    • 物事にはネガティブ、ポジティブがあって両方をバランス良く見る目が必要だと思っているのでこの傾向は自分にとっていい事だと思っている。
  • Google Apps ScriptからTypetalkに投稿するBotを作った。
    • チームをサポートするという意味を込めて「Nanny」命名した。
  • EC2のルートデバイスが枯渇するのコワイ。。。
    • そもそもログインもできない状態になってしまうので拡張ができなくなる。
      • sshは出来たがセッションマネージャーが実行不可能になってしまった。

プライベート

  • ウマ娘 3rdイベント Day1をAbemaで観た。めちゃくちゃ良かった。Day2も楽しみ。
    • マルチアングルにしたけど結局メインアングルしか使わなかった。
    • メインアングルではVRの演出も入っていて迫力があってとても盛り上がった。
    • 会場で見れた人が羨ましい。。。
    • ゲームの最新情報やその他の情報も解禁されて今後が楽しみになった。
  • 結婚記念と付き合った記念をした。
    • 結婚9年目に突入。
    • 付き合ってから14年目に突入。
  • お菓子メーカーのシャトレーゼが気になって近くの店舗を調べて行ってきた。
    • お菓子うまい。
    • 山梨が本社ということもあり、ワインを樽出ししていたので白を飲んでみた。軽い印象で飲みやすい分類。次は赤を飲んでみたい。
  • いつもお世話になっている理容師の方が異動になって別店舗に行くことになった。ちょっと行くには遠くなってしまうので悩む。。。
    • いつも行っているウルフマンバーバー。雰囲気が落ち着いていてとても気に入っている。

See you next time:)

2021/08/15 ~ 08/21の振り返りとISUCON11の感想を添えて

今週は ICL 手術後の一ヶ月検診があったり ISUCON11 に参戦したりした。ISUCON の話にも少しだけ触れておこうと思う。

仕事

  • 普段仕事でペアプロ(ペア作業)をすることが多いのだけどVS Code の Live Shareを試すなどした
    • 1年前くらいに使ったときは挙動が不安定でちょっと利用するのは難しいなとおもったけど今回はサクサク雨後したし、3人でシェアしても問題なかった
  • オペレーション作業をする時にメトリクスを見ながら「あ、この時間帯は避けておこう」と判断するのだけど、今回もやっててよかったなと改めて思った
    • 特にユーザーに影響がないと思っていた作業も実はサーバーリソースを以外と食っているケースがあるので慎重に
  • スクラムセレモニーがだいぶ慣れてきた感じで設けた時間を大きく超過することがなかった
  • 個人開発部が出来たので雑にChromeエクステンション作ってますとチャットに書いたところChromeエクステンションマスターがいたので1on1をしてみていろいろと話しを聞けた++
    • ホットリロードにweb-extがいいよと教えてもらったので試してみる

プライベート

  • 作りかけてまったく動作しなかったChromeエクステンションが動いた
    • github.com
    • エクステンションとして公開しみようと思う(需要はないだろうけど)
  • ICLの一ヶ月後検診が無事終了
    • まだハログレア現象が気になるけど半年もすればだいぶよくなるとのこと
  • 東急プラザ銀座で食べた牛タン利休の「濃い卵」が人生で一番美味しかった。ほんとうに味が濃くて食べた時に醤油に漬けてたのかと思った。それぐらい濃かった。もちろん牛タンも美味しかった
  • 16時間ファスティングを卒業した。朝を抜くと基礎代謝分のカロリーを下回ることが増えてしまったので朝も食べるようにした。ただ夜は20時ぐらいに済ますようにしている。体調はいい感じ
  • ISUCON11に参戦してきた。後述する

ISUCON11の感想

最後に出場したのがISUCON6 or 7だった記憶で約5年ぶりに出場。
毎回3人で出場して主にインフラ面を担当していたのだけど今回はソロで出場してみた(チーム名はpokke)理由はコロナの影響で直接会うことが難しそうだったのとソロでインフラ以外にも手を出してみようと思ったのが理由。オンラインでつないでやることも出来たと思ったけど、ちょっと大変そうに思えたため。
今回はソロでインフラ以外にアプリにも手を出せたのは良かった。ただ、やっぱソロはきつい。当然ながら担当範囲が広くなるのとアプリの改修に没頭してサーバーのリソース状況の把握など全く出来ずという始末。あとスコアの仕様がちゃんと理解する余裕もなかった。。。
結果はもちろん予選敗退でまた来年参戦したい。実力をシンプルに試されるのが本当に面白い。

twitter.com

続きを読む