タグ

Programmingとcheckに関するItisangoのブックマーク (3)

  • 26.1. typing --- 型ヒントのサポート — Python 3.6.6 ドキュメント

    Note The Python runtime does not enforce function and variable type annotations. They can be used by third party tools such as type checkers, IDEs, linters, etc. This module provides runtime support for type hints. Consider the function below: def surface_area_of_cube(edge_length: float) -> str: return f"The surface area of the cube is {6 * edge_length ** 2}." The function surface_area_of_cube tak

    26.1. typing --- 型ヒントのサポート — Python 3.6.6 ドキュメント
    Itisango
    Itisango 2022/03/02
    「特定のシグネチャを持つコールバック関数を要求されるフレームワークでは、 Callable[[Arg1Type, Arg2Type], ReturnType] を使って型ヒントを付けます。」
  • Man page of SOCKET

    poll(2) や select(2) を使う代わりに、カーネルからアプリケーションに イベントを通知させるのに SIGIO シグナルを使う方法もある。 この方法を使うには、 fcntl(2) を用いてソケットのファイルディスクリプターに O_ASYNC フラグをセットし、 SIGIO に対する有効なシグナルハンドラーを sigaction(2) によって設定しておく必要がある。 後述の シグナル に関する議論も参考にすること。 ソケットアドレス構造体 各ソケットドメインにはそれぞれ独自のソケットアドレス形式があり、ドメイン固有のアドレス構造体を持っている。 これらの構造体の先頭には、アドレス構造体の種類を示す整数の "family" フィールド (型は sa_family_t) がある。 このフィールドにより、 すべてのソケットドメインで汎用的に使用されるシステムコール (例えば、 co

  • パスワードの判定にstrcmpを使うべきでない理由

    strcmpを使ってパスワードを判定すると、タイミング攻撃 (timing attack) にやられる危険性があることの説明 (約20分)。 まとめ: パスワードなどの文字列を strcmp関数 (およびそれに類する関数) を使って判定すると、 その判定にかかる時間を測定することで、パスワードが推測できてしまう場合がある。 これをタイミング攻撃 (timing attack) という。 この例では、36種類の文字を使った8文字分のパスワードを推測するのに、 通常のしらみつぶしな方法 (bruteforce attack) … 368 = 2821109907456回 の試行が必要なのに対して、 タイミング攻撃を使った方法 … 10000×8 = 80000回 しかかからない。タイミング攻撃を成功させてしまうと、 重要な情報が漏洩してしまう危険性がある。 これを防ぐためには、なるべく実行時間

  • 1