tusbasaのブログ

業務や勉強中に調べたことを自分用にメモするブログ

【AWS】WAFについて

AWS WAFを利用を始める際に最初に作成することになるリソース。Web Aclに関連付けされたAWSサービスが保護対象となり、Web Aclの配下に作成したルールやルールグループが保護対象リソースのアクセス制御の評価基準となります。

  • Web Aclのリソースタイプ

CloudFront distributions、Regional resources CloudFront用のWeb Aclなのか、リージョナルリソース(CloudFront以外)用のWeb Aclなのか

ルールが持っている処理コスト。複雑なルールは高く設定されている。デフォルトでWebAcl 1つあたり1500まで設定可能。

参考

docs.aws.amazon.com

blog.serverworks.co.jp

dev.classmethod.jp

【Nmap】

ネットワーク探索やセキュリティ監査に使用されるオープンソースツール

ポートにSYNフラグをたてたTCPリクエストをサーバに送信します。サーバはポートが開いていた場合、SYN+ACKをNmap側に返します。この時、Nmapはそのポートが開いていると判断し、ACKをポートに送信して、TCPコネクションを確立させます。

  • TCPスキャン
    3ウェイハンドシェイクが成立したかどうかでポート開閉を判断するスキャン。最後にACKをサーバー側のポートに送信して、TCPコネクションを確立させる。

  • SYNスキャン
    ターゲットからSYN+ACK受取後、RSTを送り返し、コネクションを確立せず、終了する。(RSTはTCP接続を直ちに終了させるための信号) コネクションを確立しない為検知されにくい。


単一ホストのスキャン

nmap [ターゲットのIPアドレス]

参考

qiita.com

【Nuxt.js】関数の依存とテストのしやすさ

composition apiでロジックを別ファイルに切り出して実装している。 関数Aを一つ定義して、そのプロパティとして関連する関数を複数定義する際に、プロパティとして定義した関数同士で呼び出す実装は良くない。 単体テストを書く際モックしたくなった場合に、同じ関数A内のメソッドはモックできない。(できるのかもしれないが複雑な実装になる、またテストフレームワークはjestを使っている)

【javascript】nameプロパティ

Nuxt.jsでcomposition apiを使って開発している際に関数オブジェクトを定義して、そのプロパティに関数を定義することが多いが、その際既存のプロパティ名を上書きしない方が良い。 デバッグの際に紛らわしくなる。 既存のプロパティは他にはlength, prototypeなどがある。

function sayHi() {
  console.log('Hello');
}

console.log(sayHi.name); // "sayHi"

// 関数sayHiを変数hiと変数heyに代入
let hi = sayHi;
let hey = sayHi;

// 元の関数名が出力される
console.log(hi.name); // "sayHi"
console.log(hey.name); // "sayHi"

参考

tcd-theme.com

【Javascript】関数の参照と実行

関数は()をつけないと参照になり、()をつけると実行される

function sayHi() {
  console.log('Hello');
}

// 関数の後ろに括弧が無い
console.log(sayHi); 
/* 
  function sayHi() {
    console.log('Hello');
  }
*/

参考

tcd-theme.com

【SQL】ALL

副問い合わせに対して比較述語(=、!=、<>、<、<=、>、>=)を使用した比較を一度にすることができる。 すべての条件に一致しているレコードだけを抽出することができる。 副問い合わせでは、複数のカラムを返すようなSELECT文を使用することはできない。

SELECT *
FROM teachers
WHERE age > ALL (SELECT age
                  FROM teachers
                  WHERE address = "東京都");

参考

tech.pjin.jp