コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

ブルートフォースアタック(総当り攻撃)とは何かざっくりまとめる

プルートフォースではなく、ブルートフォース。さらっとまとめる。

プルートフォースアタック(Brute-force attack)とは

日本語では総当り攻撃と言われ、主にセキュリティの文脈で使われ、有限桁数のパスワードに対して、すべてのパターンをぶつけて虱潰しにログイン動作を繰り返してログインしようとする手法。

語源は見つからなかったが、力づくで解くというところからBruteと言われている模様。

防ぎ方

Webアプリケーションなどであれば…

  • ログイン失敗が数回繰り返されたらロックする
  • 複雑なパスワード文字列になるようなしばりをかける

などなどが対応策として挙げられる。

参考リンク

nginxを使っているサーバのリクエストに関してレンダリング中など表示される前に接続を切ると499となる

いつもyuukiさんの文章に支えられてしまっているのでちゃんと調べる

nginxのコード曰く

/*
 * HTTP does not define the code for the case when a client closed
 * the connection while we are processing its request so we introduce
 * own code to log such situation when a client has closed the connection
 * before we even try to send the HTTP header to it
 */

出典: nginx/ngx_http_request.h at master

Google的な和訳をすると…

HTTPではリクエストの処理中にクライアントが接続を閉じた場合のコードを定義しないため、HTTPヘッダーを送信しようとする前にクライアントが接続を閉じた場合の状況を記録する独自のコードを導入しています。

ということで記録するために導入されたステータスコード

参考リンク

MySQLのtimestamp型は2038年問題があるが、datetime型は9999年まで可能。

MySQLってどれぐらい先まで設定できるんだっけ?」という議論が起こるのでメモ

ドキュメント曰く

DATETIME または TIMESTAMP 値には、マイクロ秒 (6 桁) までの精度で後続の小数秒部分を含めることができます。特に、MySQL 5.6.4 以降では、DATETIME または TIMESTAMP カラムに挿入された値の小数部はすべて破棄されずに格納されます。小数部が含まれる場合、これらの値の形式は 'YYYY-MM-DD HH:MM:SS[.fraction]' であり、DATETIME 値の範囲は '1000-01-01 00:00:00.000000' から '9999-12-31 23:59:59.999999' であり、TIMESTAMP 値の範囲は '1970-01-01 00:00:01.000000' から '2038-01-19 03:14:07.999999' です。 - MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.3.1 DATE、DATETIME、および TIMESTAMP 型

ざっと年観点でまとめると

  • TIMESTAMPは西暦1970年から2038年まで
  • DATETIMEは西暦1000年から9999年まで

参考リンク

レインボーテーブルの出典と意味ざっくりまとめる

語源含め

意味

平文とあるハッシュ値の組わせを用意し、そのリストと総当りでもとの平文を見つけ出すという手法のことを指す。

出典

レインボーテーブルに関する論文にて以下のような記述がある

The main limitation of the original scheme is the fact that when two chains collide in a single table they merge. We propose a new type of chains which can collide within the same table without merging. We call our chains rainbow chains. They use a successive reduction function for each point in the chain. - Making a Faster Cryptanalytic Time-Memory Trade-Of

この中で称されたRainbow Chainという言葉から転じてRainbowTableという用語で記載されているのでこれが語源かと思われる。

関連リンク

『BPStudy#147〜いまどきのアプリケーションアーキテクチャはどうあるべきか』に行ってきたよメモ

BPStudy#147〜いまどきのアプリケーションアーキテクチャはどうあるべきか に行ってきたのでそのメモです。

各発表の感想

※資料スライドは見つけたら貼ります。


アプリケーションアーキテクチャの現在・過去・未来

www.slideshare.net

感想

  • 増田さんによる今回の会の趣旨説明と歴史の説明
  • 実際に現場で実践と検証を繰り返されてきた方だから、古典と呼ばれる書籍の紹介などを見ていると読んでみたい書籍がいくつかあった

関連リンク


バックエンドのエンジニアがiOSアプリ開発をやってみて思うこと - フロントエンドのアーキテクチャの考察 -

www.slideshare.net

感想

  • サーバーサイドの観点からMVCへの歴史的言及に関しての話。
  • MVCから枝葉で表現しているのは秀逸な図だなと思った。

関連リンク


"ユーザーファースト"の功罪 〜分析と実験によるアーキテクチャ

speakerdeck.com

感想

  • 事業者と利用者で考え方を分離した考え方の話。
  • SoRとSoEの考え方など、いままでのすえなみさんの発表のその先の話のように感じた。
  • 書籍の引用や過去の著名な人物との絡め方がうまいな…と思いました。

関連リンク


座談会

座談会のメモ

それぞれのこだわりポイントに関して

  • 新しいものに振り回されるのが辛いので古典から作っている。ただ昔からあるアーキテクチャやビジネスアプリケーション論やコストの考え方は(クラウドの登場で)変わっている
  • 基本的な知見はあるが、実際に作る前提条件は変わるのでアーキテクチャは変わるのでそれぞれでひとつひとつ考える。例えばiOSAndroidは似ているがゼロに近いところで考えたい
  • チームにどうやって開発を進めてほしいか、そういうところを雄弁に語る者であるべきということを考えている。共通的な意識をもつとオーバーヘッドがかからなくなる。

アーキテクチャをつくるということは道具を作る、治具づくりに近いのではないか

  • 治具に例えるのは面白い

バックエンドとフロントエンドの違いをどう考えるか

フロントエンドは小数でつくるが、バックエンドは100人とかざら そうすると旗振りをする人が必要だが、そうではないのでその点が差。

多様なバックグランドの人たちをどうするか

つまるところルールを決めるしかない、技術の外側の工夫、ドメインが分かる人をどう巻き込むか

関連リンク


全体を通しての感想

  • 全体的に古典と現代の考え方のミックスという発表や話が多く、昔の知識を吸い上げてうまく現代の考え方と合わせていくことの大切さを改めて実感しました。
  • マイクロサービスは分散データベースの考え方と大差ないのでそこらへんの知識をうまく集積していきたいな…と思いました。

Railsコンソールでの実行をシェルからワンライナーで行うときに使える runner

よく忘れるのでメモ

環境

$ bin/rails -v
Rails 5.2.2

使う機能

runnerコマンドを使うと、非対話的にRailsの文脈でRubyのコードを実行することができます。 - Rails のコマンドラインツール - Rails ガイド - 1.6 rails runner

使い方

$ bin/rails r "p User.last.id"
17

関連リンク

『Classi Rails Night #1』に行ってきたよメモ

Classi Rails Night #1 に行ってきたのでそのメモ

各発表の感想

※資料スライドは見つけたら貼ります。


『初めてのプログラミングがRails』なジュニアエンジニアに伝えていること

スライドリンクはなさそう

感想

  • Railsアプリから入ったひとへのアドバイス的なお話。
  • ドキュメントを当たるべきなど正しい知識の付け方を紹介していたが、これは割と一般的も通じる力だなと感じた(『嘘を嘘と見抜けない人にインターネットを使いこなすのは難しい』に近い)
  • 正しい判断力は日々の経験なので、経験値を積むことを忘れるべからずだなと思わされた

関連リンク


タイトル

感想

  • ActiveRecordから入るとデータベースの知識が希薄化するよね、という感じを物語っている話
  • かくいう私もRails2系でMySQLと戯れていたので、SQL文が全然身に入っていない時代もありました。。

関連リンク


Railsの友達になるための3つのコツ ──Classiの新人研修から気づいたこと──

スライドリンクはなさそう

感想

  • 新卒研修の内容と、困ったときの探しかたの振る舞いなどの話。
  • source_locationで探す、そういうのもあるのか!という学びがあった

関連リンク


リファクタリングチャンスを探せ!

speakerdeck.com

感想

  • リファクタをするタイミング、そのための仕組みに関しての話。
  • 整地部の踏襲、というのは良い輪が広がっている感じ。
  • 大きなやらかしをやるとリファクタできるというのはわからなくはないが、その代償に誰かが責任をとるということを考えると容易には切りにくいカード…
  • どうしても給与を出す側からするとリファクタリング活動に対して意味をもたせるにはかなりがんばらなきゃいけないのがツラミ

関連リンク


全体を通しての感想

  • 全体的に普段の活動や心構えみたいな部分が多く、日々の苦労などがわかるような話が多かった
  • 各社新卒へのアプローチや、どうやって普段の課題に取り組んでいるかがわかる良い場でした。

その他関連リンク