안전하지 않은 난수 생성

안전하지 않은 난수 생성

설명

rand, mt_rand, uniqid, str_shuffle는 보안 토큰이나 인증 코드 생성에 충분하지 않습니다.

잠재적 영향

토큰 예측, 인증 우회, 세션 탈취가 가능합니다.

해결 방법

보안 목적의 난수는 random_bytes 또는 random_int를 사용합니다.

예시

변경 전

php
<?php
$token = uniqid();

변경 후

php
<?php
$token = bin2hex(random_bytes(32));

설명:

  • 변경 전: 보안에 민감한 값에 예측 가능한 난수 API가 사용됩니다.
  • 변경 후: 보안 목적의 난수는 random_bytes 또는 random_int를 사용합니다.

참조