이 의사 난수 생성기를 사용하는 것이 여기서 안전한지 확인하십시오.

3g 웹 트레인

다음과 같은 변수를 선언했을 때 :

const FileId = Math.random().toString(36).substr(2, 9);

Sonar에서이 오류가 발생합니다.

이 의사 난수 생성기를 사용하는 것이 여기에서 안전한지 확인하십시오.

이 문제를 어떻게 해결해야합니까? 내 코드에 어떤 문제가 있습니까?

누구든지 나를 도울 수 있습니까?

mplungjan

그들은 Math.random이 진정한 랜덤 생성기가 아니라 PRNG 라는 사실을 경고하고 싶습니다 . 안전을 위해 필요한 경우 CSPRNG 가 필요합니다 .

사양은 다음과 같습니다.

PRNG (의사 난수 생성기) 사용은 보안에 민감합니다.

소프트웨어가 예측 불가능 성이 필요한 컨텍스트에서 예측 가능한 값을 생성하면 공격자가 생성 될 다음 값을 추측하고이 추측을 사용하여 다른 사용자를 가장하거나 민감한 정보에 액세스 할 수 있습니다.

Math.random () 함수는 약한 의사 난수 생성기에 의존하므로이 함수는 보안이 중요한 응용 프로그램이나 민감한 데이터를 보호하는 데 사용해서는 안됩니다. 이러한 맥락에서 대신 암호 학적으로 강력한 의사 난수 생성기 (CSPRNG)를 사용해야합니다.

스스로에게 물어보십시오

  • 생성 된 값을 사용하는 코드는 예측할 수 없어야합니다. 모든 암호화 메커니즘의 경우 또는 암호와 같은 비밀 값이 해시되는 경우입니다.
  • 사용하는 함수는 예측할 수있는 값을 생성합니다 (의사 랜덤).
  • 생성 된 값은 여러 번 사용됩니다.
  • 공격자는 생성 된 값에 액세스 할 수 있습니다.

첫 번째 질문과 다음 질문 중 하나에 예라고 대답하면 위험합니다.

코드 예

const crypto = window.crypto || window.msCrypto;
var array = new Uint32Array(1);
crypto.getRandomValues(array); // Compliant for security-sensitive use cases
const FileId = array[0];
console.log(FileId);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

사용 가능한 이진 난수 (0 또는 1 반환) 함수를 사용하여 정수 난수 생성

분류에서Dev

파이썬에서 이전 숫자를 기반으로 의사 난수를 생성하는 방법

분류에서Dev

R에서 파일 이름의 일부를 사용하여 파일이 있는지 확인하십시오.

분류에서Dev

Fortran에서 난수 생성기를 사용하여 동시 계산을 수행하는 간단한 방법이 있습니까?

분류에서Dev

내장을 사용하여 쉘 변수에 둘 이상의 행이 있는지 확인하십시오.

분류에서Dev

PHP를 사용하여 1에서 10 사이의 30 개의 난수 생성

분류에서Dev

==를 사용하여 두 객체가 파이썬에서 동일한 값을 갖는지 확인하십시오.

분류에서Dev

expressjs 유효성 검사기와 mysql을 사용하여 사용자 이름과 이메일이 이미 존재하는지 확인하십시오.

분류에서Dev

0에서 n 사이의 RNGCryptoServiceProvider를 사용하여 난수 목록 생성

분류에서Dev

Mongoose와 MomentJS를 사용하여 문서가 두 날짜 사이에 있는지 확인하십시오.

분류에서Dev

-35에서 +5 사이의 난수를 생성하는 VBA

분류에서Dev

명시된 규칙 세트를 사용하여 문자열이 형성되었는지 확인하십시오.

분류에서Dev

POSIX에서 스레드를 사용하여 [0,1] 사이의 난수를 생성하는 방법

분류에서Dev

POSIX에서 스레드를 사용하여 [0,1] 사이의 난수를 생성하는 방법

분류에서Dev

루비의 범위 사이에 시드를 사용하여 난수 생성

분류에서Dev

vba에서 Excel 시트를 사용하기 전에 시트 이름을 확인하십시오.

분류에서Dev

awk를 사용하여 csv에서 두 열이 완전히 숫자인지 확인하십시오.

분류에서Dev

이전에 알려지지 않은 크기의 문자열에서 sprintf를 사용하여 free () 잘못된 다음 크기를 생성하십시오.

분류에서Dev

VBA에서 FormatConditions를 사용하여 "false"값이 범위에 있는지 확인하십시오.

분류에서Dev

Excel에서 VBA를 사용하여 하루가 주어진 두 날짜 사이인지 확인하십시오.

분류에서Dev

부울 난수 생성기를 사용하여 0에서 n까지 난수 생성

분류에서Dev

읽기 작업이 필터 드라이버의 특정 파일에 대한 것인지 확인하십시오.

분류에서Dev

Validator를 사용하여 이메일이 이미 등록되었는지 확인하십시오.

분류에서Dev

난수 생성기를 사용하는 동안 on_message의 잘못된 출력

분류에서Dev

jquery를 사용하여 두 가지 색상이 접촉하는지 확인하십시오.

분류에서Dev

깔창 기능을 사용하여 두 열이 null인지 확인하십시오.

분류에서Dev

한 폴더의 파일 수를 비교하여 새로운 파일이 있는지 확인하십시오.

분류에서Dev

루프백 nodejs에서 저장하기 전에 월이 동일한 사용자 ID로 입력되었는지 확인하십시오.

분류에서Dev

기하 분포를 사용한 난수 생성기

Related 관련 기사

  1. 1

    사용 가능한 이진 난수 (0 또는 1 반환) 함수를 사용하여 정수 난수 생성

  2. 2

    파이썬에서 이전 숫자를 기반으로 의사 난수를 생성하는 방법

  3. 3

    R에서 파일 이름의 일부를 사용하여 파일이 있는지 확인하십시오.

  4. 4

    Fortran에서 난수 생성기를 사용하여 동시 계산을 수행하는 간단한 방법이 있습니까?

  5. 5

    내장을 사용하여 쉘 변수에 둘 이상의 행이 있는지 확인하십시오.

  6. 6

    PHP를 사용하여 1에서 10 사이의 30 개의 난수 생성

  7. 7

    ==를 사용하여 두 객체가 파이썬에서 동일한 값을 갖는지 확인하십시오.

  8. 8

    expressjs 유효성 검사기와 mysql을 사용하여 사용자 이름과 이메일이 이미 존재하는지 확인하십시오.

  9. 9

    0에서 n 사이의 RNGCryptoServiceProvider를 사용하여 난수 목록 생성

  10. 10

    Mongoose와 MomentJS를 사용하여 문서가 두 날짜 사이에 있는지 확인하십시오.

  11. 11

    -35에서 +5 사이의 난수를 생성하는 VBA

  12. 12

    명시된 규칙 세트를 사용하여 문자열이 형성되었는지 확인하십시오.

  13. 13

    POSIX에서 스레드를 사용하여 [0,1] 사이의 난수를 생성하는 방법

  14. 14

    POSIX에서 스레드를 사용하여 [0,1] 사이의 난수를 생성하는 방법

  15. 15

    루비의 범위 사이에 시드를 사용하여 난수 생성

  16. 16

    vba에서 Excel 시트를 사용하기 전에 시트 이름을 확인하십시오.

  17. 17

    awk를 사용하여 csv에서 두 열이 완전히 숫자인지 확인하십시오.

  18. 18

    이전에 알려지지 않은 크기의 문자열에서 sprintf를 사용하여 free () 잘못된 다음 크기를 생성하십시오.

  19. 19

    VBA에서 FormatConditions를 사용하여 "false"값이 범위에 있는지 확인하십시오.

  20. 20

    Excel에서 VBA를 사용하여 하루가 주어진 두 날짜 사이인지 확인하십시오.

  21. 21

    부울 난수 생성기를 사용하여 0에서 n까지 난수 생성

  22. 22

    읽기 작업이 필터 드라이버의 특정 파일에 대한 것인지 확인하십시오.

  23. 23

    Validator를 사용하여 이메일이 이미 등록되었는지 확인하십시오.

  24. 24

    난수 생성기를 사용하는 동안 on_message의 잘못된 출력

  25. 25

    jquery를 사용하여 두 가지 색상이 접촉하는지 확인하십시오.

  26. 26

    깔창 기능을 사용하여 두 열이 null인지 확인하십시오.

  27. 27

    한 폴더의 파일 수를 비교하여 새로운 파일이 있는지 확인하십시오.

  28. 28

    루프백 nodejs에서 저장하기 전에 월이 동일한 사용자 ID로 입력되었는지 확인하십시오.

  29. 29

    기하 분포를 사용한 난수 생성기

뜨겁다태그

보관