Skip to content

Instantly share code, notes, and snippets.

View ykst's full-sized avatar

YUKISHITA Yohsuke ykst

  • Mount Fuji, Japan
View GitHub Profile
@ykst
ykst / cypher.md
Created December 19, 2018 16:48
逆引きCypher

逆引きCypher

特に断りがない限り、環境はOSX、neo4jは3.4.5を参照。

メンテナンス系

ユーザーパスワードの変更

REST APIの/user/<user name>/passwordに対してPOSTする。

@ykst
ykst / postgres_memo.md
Last active February 20, 2018 04:39
逆引きPostgresql

逆引きPostgresql

導入(OSX)

インストール

$ brew install postgresql

立ち上げ

$ brew services start postgresql
@ykst
ykst / transparent_proxy_osx.md
Last active September 27, 2022 17:57
mitmproxyでOSX上に透過型プロクシを立てる方法

mitmproxyでOSX上に透過型プロクシを立てる方法

概要

httpプロクシによるペネトレーションテストを行う際に、対象となるアドレスが不定であったりOSのプロクシ設定に従わないようなクライアントがあるとする。 この場合でも全ての対象ドメインが数え上げられる場合はDNSスプーフィングによって介入することが出来るが、透過型プロクシを使うのがより確実な方法である。 ここではOSX上のmitmproxyをプロクシサーバーとして使用し、任意のドメインとポートを対象としたhttp(s)通信へ介入する手法について説明する。 前提として、対象クライアントは既にプロクシの証明書を信用済みであるとする。

手順

@ykst
ykst / local_ssl.md
Last active August 19, 2024 12:14
LANのIPアドレスに対してSANを適用して真正なSSL証明書を作成する手順

LANのIPアドレスに対してSANを適用して真正なSSL証明書を作成する手順

概要

テスト用に自己証明書を用いてローカルhttpsサーバーを立てるなどの際に、クライアントから危険な接続として扱われないように証明書を設定をする方法について説明する。 通常ホストの真正性を確認するためにはドメイン名を使用するが、環境の都合上ローカルにDNSを立てるのが難しい場合がある。クライアントへの介入が難しい場合は/etc/hostによる書き換えも出来ない。 そこで、x509.v3のsubjectAltName拡張を用いてIPをホスト名の代わりに使用し、任意のIPアドレスに立てたサーバーを真正なものとして扱えるようにする。

手順

  • openssl設定ファイルの指定(任意)
@ykst
ykst / lua-nginx-cheatsheet.md
Last active February 7, 2024 15:17
逆引きlua-nginx-module
@ykst
ykst / Deferred.cs
Last active November 24, 2015 05:40
Deferred in C#
namespace Deferred
{
public class BasePromise
{
protected enum State
{
Pending,
Fullfilled,
Rejected
}
@ykst
ykst / mongodb.md
Last active February 1, 2024 10:02
逆引きmongodb

逆引きmongodb

バージョン3以降対象

環境系

認証

use 
@ykst
ykst / Cps.swift
Created June 23, 2015 12:32
Continuation Passing Style in Swift
// Poorman's continuation passing style library
struct Cps {
static func seqByIdx<E, U>(list: [(U, (E?, U) -> ()) -> ()], idx: UInt, value: U, next: (U) -> (), fail: (E) -> ()) {
if idx >= UInt(list.count) {
next(value)
} else {
list[Int(idx)](value, { (errorp: E?, result: U) -> () in
if let error = errorp {
fail(error)
} else {
@ykst
ykst / gist:8bcefdd86e23b660cdf7
Created January 28, 2015 14:56
イベント駆動アーキテクチャ心得集

#イベント駆動アーキテクチャ心得集

  • イベントを設計するのではなく、責任分界点を設計せよ

  • 命令形ではなく過去形を使用せよ

  • ディスパッチャーはリスナーの存在を想定してはならない

  • ディスパッチャーはリスナーの数を想定してはならない

@ykst
ykst / gist:64969c1b06678ee12eef
Created January 28, 2015 14:16
ログに出すモジュール名の定義をMakefileで自動化する

ログに出すモジュール名の定義をMakefileで自動化する

ログツール等で__FILE____BASE_FILE__を渡してソース位置を表示する事をよくやると思いますが、 モジュールのようにもう少し大きい括りを渡してフィルタを楽にしたい時が有ります。

#ifndef MODULE_NAME
#   define MODULE_NAME "FOO"
#endif

#define ERR(fmt, ...) printf("ERR %s %s %d %s (" fmt ")\n", MODULE_NAME, __FILE__, __LINE__, __FUNC__, ##__VA_ARGS__)