月: 2018年5月

JavaScriptでインジェクションリスクがある関数/機能など

Webブラウザに対するJavaScriptコードのインジェクションは

  • サーバー側のコードが原因(サーバー側のPHP、Ruby、Python、JavaScriptが原因)
  • クライアント側のコードが原因(クライアント側のJavaScriptが原因)
  • サーバーとクライアント(上記の両方)

で起きる可能性があります。ここでは主にクライアント側が関係するケースで注意しなければならない箇所を紹介します。

もっと読む

プログラミングの「世界観」

rustcを通らないコードは間違っているに以下のような記述があります。

「そのコードがRust wayではない」という点で「間違っている」。microなスタイルからmacroな設計まで、ありとあらゆる点でRust的なコードであることを暗黙的ではあるが極めて強く要求する。それがRustというプログラミング言語だ。

Rustはコンパイル時点で可能な限りの正しく実行できないコードが生成されないような言語になっていることは比較的良く知られていると思います。このブログはこの違いを「世界観」が異なるという視点でまとめています。

Rustの場合、マルチスレッドプログラミングでデータ競合が起きないような書き方をしなければならない制約があり、従来のプログラミング言語とは異なる考え方(=世界観)が要求されている。自分のコードは正しくても「Rustの世界観では間違っている」としています。

「世界観」の違いで言語やプログラミング方式を捉える考え方は面白いと思います。

もっと読む