2019年7月25日木曜日

Mac環境で、Sublimeで文字列を矩形選択する方法

Mac環境で、Sublineで文字列を矩形選択する方法

Optionキーを押しながら左ドラッグをする

2019年7月24日水曜日

脆弱性を防ぐためのNginxセキュリティ設定

常にHTTPSで通信を行えるような設定

Http Strinct Transport Securityヘッダの追加
 add_header Strict-Transport-Security max-age=15768000;

クリックジャッキング攻撃対策として、X-Frame-Optionsヘッダを追加

X-Frame-Optionsの設定は「DENY」もしくは「SAMEORIGIN」をすることで、自分のサイトを他のサイトにiFrameとして埋め込むことができようにすることができます。
  add_header X-Frame-Options SAMEORIGIN;

XSSフィルタリングを有効にします。かつ、ブラウザはXSS攻撃を検知した場合、ページの描画を止めます。

  add_header X-XSS-Protection "1; mode=block";

Content-Typeに一致しない処理は行わないように、 X-Content-Type-Optionsヘッダを追加

  add_header X-Content-Type-Options nosniff;

設定完了後のconfファイルは以下の通りになります。(一例)

server {
    listen       80;
    server_name  localhost;
    access_log  /var/log/nginx/host.access.log  main;
     
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options nosniff;
    add_header Strict-Transport-Security max-age=15768000;
    
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page  404              /404.html;
}

2019年7月22日月曜日

Linuxとあうグループに、ユーザーの一覧を出力するには?

とあるグループに所属しているユーザー一覧を出力するには?

getent コマンドです。
getent group wheel

ユーザーの所属するグループを表示するには

groups ユーザー名

ユーザーをグループに追加するには

gpasswd -a USER GROUP

Golangで空文字チェック

Golangの空文字チェック、主に以下の2つ方法があります。(両方とも標準ライブラリーの中に使われています。)

方法1、文字の長さをチェック

if len(s) > 0 { ... }

方法2、 strconvパッケージ関数の中に見つけることができます。

if s != "" { ... }

2019年7月11日木曜日

redisにデータを入れようとしたら、エラーが発生しました。(error) READONLY You can't write against a read only replica.

AWSのElastiCacheでredisタイプのサーバを作ってみました。

以下のコマンドで、telnetを入れて接続しました。


$ sudo yum install -y telnet
telnet test-myredis-for-web-ro.5irjbr.ng.0001.apne1.cache.amazonaws.com 6379

いざデータを入れようとしたら、エラーが発生しました。
$-1
set hoge hogehoge
-READONLY You can't write against a read only replica.


調査したところ、awsはデフォルト3つのノートを作成されるらしいです。
一つ「primary」と2つ「replica」が作られます。
書き込み用として使えるのは「primary」のみです。

「primary」用エンドポイントを使って再度接続し、データを入れてみたら、問題が解消できました。
以下↓「primary」用ノートのエンドポイントとなります。

2019年7月9日火曜日

s3、特定のバケットに対して外部からのアクセス(閲覧のみ)を許可設定

まず、バケット作成から

S3のコンソールから、「バケットを作成する」をクリックします

バケット名は「test-open-to-public」と入力
プロパティはデフォルトのままで進みます
「アクセス許可の設定」に上の2つをチェックする。後でポリシーを追加できるため、下の2つを外しておきます。
新しいアクセスコントロールリスト (ACL) を介して許可されたバケットとオブジェクトへのパブリックアクセスをブロックする
任意のアクセスコントロールリスト (ACL) を介して許可されたバケットとオブジェクトへのパブリックアクセスをブロックする
最後「バケットを作成」ボタンを押します。

作成したバケットに対して、アクセス権限を設定します。

「アクセス権限」→「バケットポリシー」の順にバケットポリシーエディター画面を開きます。
以下のソースコードを貼り付けした後、「保存」ボタンを押します。
※注意してほしいのは、「Resource」のところ、自分のバケット名に書き換えるが必要です。
{
    "Version""2008-10-17",
    "Statement": [
        {
            "Sid""AllowPublicRead",
            "Effect""Allow",
            "Principal": {
                "AWS""*"
            },
            "Action""s3:GetObject",
            "Resource""arn:aws:s3:::test-open-to-public/*"
        }
    ]
}