Skip to content

회원가입 및 정보수정시 필터링 강화#1461

Merged
8 commits merged into
xpressengine:developfrom
kijin:fix/nickname-filter
Jul 6, 2015
Merged

회원가입 및 정보수정시 필터링 강화#1461
8 commits merged into
xpressengine:developfrom
kijin:fix/nickname-filter

Conversation

@kijin

@kijin kijin commented May 6, 2015

Copy link
Copy Markdown
Contributor

회원가입(insertMember) 및 정보수정(updateMember)시 아이디, 이름, 닉네임 등의 필터링 정책에 일관성이 없어서 태그를 입력하거나 고의로 닉네임 중복을 일으킬 수 있는 문제가 있습니다.

  1. DB에 저장할 때는 태그를 필터링하지만, 중복 여부를 체크할 때는 필터링하기 전의 변수값을 비교합니다. 그래서 <, >, & 등의 특수문자를 잘 활용하면 중복체크를 우회할 수 있습니다.
  2. 아이디와 닉네임에는 공백이 허용되지 않지만, 유니코드의 다양한 공백 문자 및 컨트롤 문자들을 모두 필터링하지 못하므로 공백을 사용한 닉네임 중복이 가능합니다. (어제 공홈에서 이런 일이 있었죠.)
  3. 회원정보 수정시에는 금지된 ID 및 중복 ID 체크가 이루어지지 않습니다. ID는 변경할 수 없다고 가정하는 모양인데, 이걸 우회하는 것도 어렵지 않더군요. 관리자가 직접 회원정보를 수정하다가 실수로 중복을 일으키는 경우도 있겠고요.
  4. 모든 변수에 완벽하게 htmlspecialchars() 적용이 되지 않아서 일부 회원정보를 이용한 태그 삽입이 가능합니다. 엄격한 길이 제한 때문에 당장 XSS 취약점으로 이어지지는 않으나, 회원들이 멋대로 자기 닉네임을 진하게 표시하는 등 귀찮은 일이 생길 수 있습니다.

이 PR에서는 위와 같은 문제들을 해결하고, 앞으로의 유지관리 편의를 위해 관련 루틴들의 코딩 스타일을 XE 코딩규칙에 맞게 다소 손보았습니다. if문이 어디서 끝나는지 한 눈에 알기 어려운 곳이 꽤 많더라고요. 실제 코드와 동떨어진 내용의 주석들도 고쳤습니다.

@misol

misol commented May 6, 2015

Copy link
Copy Markdown
Contributor

👍

ghost pushed a commit that referenced this pull request Jul 6, 2015
회원가입 및 정보수정시 필터링 강화
@ghost ghost merged commit b0dc85b into xpressengine:develop Jul 6, 2015
@ghost ghost added this to the 1.8.4 milestone Jul 6, 2015
@ghost ghost self-assigned this Jul 6, 2015
@kijin kijin deleted the fix/nickname-filter branch July 6, 2015 06:59
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants