php / php/php-src

Maximum password length should be exposed to userland when libxcrypt is used

オープン
#17,716 コメント 2 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

Extension: standard Feature Status: Needs Triage
主要言語
C
スター
40.4k
フォーク
8.1k
平均マージ
2日 13時間
マージ済み PR(30日)
96

説明

Description

When PHP is built against an external libxcrypt (--with-external-libcrypt, e.g. on Fedora and derivatives), passwords passed to crypt are limited by CRYPT_MAX_PASSPHRASE_SIZE which is by default 512. However, there's no way for userland to determine whether such a limit is in force, which can cause confusion. For example, the following code:

<?php
var_dump(crypt(str_repeat("a",513),"\$2y\$05\$" . str_repeat("b",22)));


Results in this output:

string(2) "*0"

I think it would be useful to expose this limit as a constant or helper function so that applications can determine whether crypt() password sizes are limited.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

報告されている crypt() の呼び出しと --with-external-libcrypt のビルドパスから始め、libxcrypt を使ったビルドで 513 文字の例を再現します。PHP userland から有効なパスワード長の上限を判定できる方法があれば完了です。正確な定数またはヘルパーはまだ設計する必要があります。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
c, php
領域
backend, security
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。