Loading...

社内システム開発日記:その154

前書き

お疲れ様です!
小手投げです。

PMからベトナム出張の留意事項を聞きました。
薬や変圧器、お金等、色々気をつけないといけないことが多いです。
結構不安なので、しっかり準備しないと。

今回は日記です。

日記

入力エラー時の入力内容保持
プロジェクト情報登録画面、プロジェクト情報編集画面
機能と同じようにやっていける
入社前プロジェクト情報編集画面
OK
入社前プロジェクト情報登録画面
表示されないと思ったが、htmlにはめる先を書いてなかった

Dockerにあげる
AWSにあげる、と思ったがまたTeraTermがつながらない
再起動してみるとつながった

XSSの対策
golangはデフォで特殊文字をエスケープしてくれると書いてあったような気がしたが気のせいか
素直に特殊文字が入る可能性のある入力に html.EscapeString してやる
表示する際には html.UnescapeString
登録、編集画面だけじゃなく、表示も手を入れないとなので範囲が結構広い

プロジェクト情報登録画面、プロジェクト情報編集画面
alertを仕込むと表示時にalert
エスケープ、アンエスケープを書く
DBにもエスケープされて入っている

エンジニア情報登録画面、エンジニア情報編集画面
alertを仕込んでもalertしてくれるところとそうでないところが
何の差だろう
とりあえず一律エスケープ
エスケープすると文字数が増えるのでDBの文字数制限に引っかかる
基盤部長に相談すると、カラムの桁数増やせばいいとのこと。確かに
最大1文字が5文字になるのでエスケープするカラムを5倍にする
65535バイトの制限に引っかかる
utf8の場合、1文字3バイト確保するので合計21845桁に抑えないといけない
全部特殊文字で埋めるやつもいないだろうから、ちょうど収まるよう2.5倍で手を打つ

自社情報、社員情報、テンプレート各画面
alertを仕込んでもalert出ないが全部仕込む

ログインIDは別で制限かけないとなのでそこがすんでから上げる

セレクト時に大文字小文字を区別しない問題
MariaDB(MySQL)はデフォルトでは区別しないようだ
照合順序(COLLATE)に utf8_bin を指定すると区別された
Docker、AWSのDBにも適用

CBT
主任がJMeterを使って負荷テストをしてくれた
感謝感謝

後書き

XSSが発現する場所としない場所があるのが謎です。

テーブル合計で21845桁は少ないように感じましたが、
よく考えたらそんなに必要になることもそんなにないかなと思いました。
ただ、カラム数が増えるときつそうではあります。

ではまた次回。

情報戦略テクノロジー