Security

NextAuth.jsでAutodeskアカウントでセッション管理するカスタムプロバイダーを作ってみた。

NextJsの認証を簡単に実現するモジュールのひとつであるNextAuth.jsについて、Autodeskアカウントを使ってみようということで、 今回はカスタムプロバイダーとしてAutodesk Platform ServicesのOAuthを試してみたので、その結果を残しておきます。 いまauth.…

「Pythonでいかにして暗号を破るか」の読書メモ

一通り終えた。一週間くらいはかかったと思う。 少なくとも最初の数章結構平易なので、基本的な数学に抵抗がなければ、Python初心者でもある程度頑張れるかもしれない。 ある程度Pythonになじみがある人にとっては前半は物足りないかもしれない。 ただ、後半…

express-sessionのセッションIDの生成を浅く確認する。

expressセッションIDの生成についても読んでみる。 var uid = require('uid-safe').sync (中略) function session(options) { var opts = options || {} // get the cookie options var cookieOptions = opts.cookie || {} // get the session id generate…

Amazon RDS Proxy(MySQL)にTLSで接続する。

RDS ProxyでTLS接続を試した。 TLSを有効にすると、証明書を設定する必要がある。 Lambdaの場合は以下のようなコードになるかな。 const fs = require('fs'); const mysql('mysql2/promise'); exports.handler = async (event) => { let con; try { con = aw…

バッファオーバーフローの脆弱性

とても初歩的なんだろうけれど、バッファオーバフローの脆弱性というのを確認した。 以下のコードがあるとき、bufの範囲を超えた入力をうけつけると、その配列より前に宣言しているnの値を書き換えることができてしまう。 #include <stdio.h> #include <stdlib.h> int main() { </stdlib.h></stdio.h>…

1024未満のportでmoshする(ntpの123とか)

moshで使うUDPのportには通常1024以上を使う。 なぜなら、moshのサーバはユーザ権限で動作するので、root権限が必要な1024未満のportは使えないためである。 1024未満のportしか使えないときはどうするかというと、moshの場合は、権限(Capability)を付与する…

manifest.jsonにはcookieが送信されない!

最近クッキーネタ多いな。。。 なんかエラーが起きてると思ったら、manifest.json(Web App Manifest)にCookieが送られていないことが判明。 調べてみると、manifest.jsonファイルについては、オリジンによらず資格情報、 つまりCookieを送らない仕様なのだそ…

Tsunami実行のためのDockerfile

Googleの?セキュリティスキャナのTsunamiを試すにあたり、Dockerfileを書いたのでおいておく。 公式のgithubに書いてある通りやっていけば実行することは難しくない。 https://github.com/google/tsunami-security-scanner ただ、取り回しをよくするためにコ…

First Party CookieのSameSite属性を試す。

一昔前に話題になっていたので、いまさらながらCookieのSameSite属性について調べた。 First Party Cookieと、Third Party Cookieがあるが、今回はFirst Party Cookieの確認。 *1 一言でSameSiteの設定の影響について説明するなら、他のドメインからのアクセ…

First Party CookieとThird Party Cookie

Cookieの仕様について調べているが、 どうもFirst Party Cookieと、Third Party Cookieってのがあるらしい。 普通のCookie、表示して表示しているページと同じドメイン(domainAとする)のCookieはFirst Party Cookieというらしい。 それに対して、表示してい…

CookieのSecure属性を試す。

CookieのSecure属性を付けないとどうなるか試した。Secure属性を有効にすると、httpsのときのみCookieを送信するようになる。 事前準備 事前の準備として、検証の内容的にhttpsアクセスは必須なので、nginxのリバースプロキシでhttps化の設定しておく。*1 今…

自己署名証明書の作り方とnginxの設定まで。

いわゆるオレオレ証明書の作り方。 最近、ちょっとしたことを確認しようとしても、https化が必須になっている。 パブリックなネットワークだとLet's Encryptを使うべきなんだけど、 Let's Encryptではドメインが必須なので、ドメインが容易できないと使えな…