Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Security] about using regex in email validation #45

Open
vionicbest opened this issue Nov 4, 2019 · 4 comments
Open

[Security] about using regex in email validation #45

vionicbest opened this issue Nov 4, 2019 · 4 comments
Labels
security fix security problem wontfix This will not be worked on

Comments

@vionicbest
Copy link
Contributor

검증되지 않은 regex를 사용하면 ReDoS과 같은 문제점이 생길 수 있으므로, 안전한 regex를 사용해야 한다.

containers에 있는 Signup.js의 이메일 validation 과정이 현재 안전하지 않은 regex를 사용하고 있고 이를 수정해야 한다.

SECURITY_HOTSPOT에서 참고할 수 있다.

@vionicbest vionicbest added the security fix security problem label Nov 4, 2019
@1207koo
Copy link
Contributor

1207koo commented Nov 4, 2019

snu.ac.kr 등으로 메일을 고정하고 이메일의 아이디(@ 앞부분)만 공백, @ 등의 기호가 안 들어가는 것으로 체크하면 안전한 regex일 가능성이 있음. 체크 경로가 유일한데, 이를 안전하다고 체크되는지 확인해야함

@cube-c
Copy link
Contributor

cube-c commented Nov 4, 2019

SonarCloud에서 말하는 것과 달리 안전한 regex일 수도 있음. SonarCloud가 철저한 방법으로 좋지 않은 regex를 찾아내는 것이 아니기에 false-positive의 가능성이 있기 때문.

이 stackoverflow 질문HTML Standard 참고 바람. 아래는 사이트에서 소개하는 Javascript용 email regex

/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/

@vionicbest
Copy link
Contributor Author

그러면 일단 이 부분은 차후 조교님께 물어보는 거로 하고 일단 regex를 사용합시다.

@vionicbest vionicbest added the wontfix This will not be worked on label Nov 12, 2019
@vionicbest
Copy link
Contributor Author

NoSonar로 처리합시다. 처리되면 pr# 달고 닫겠습니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
security fix security problem wontfix This will not be worked on
Projects
None yet
Development

No branches or pull requests

3 participants