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

getMemberInfo* 관련 잠재적 오류 가능성 #1886

Closed
Erictoby opened this issue Feb 22, 2022 · 1 comment
Closed

getMemberInfo* 관련 잠재적 오류 가능성 #1886

Erictoby opened this issue Feb 22, 2022 · 1 comment
Labels
improvement 기능 개선 요청 또는 기능 개선 PR

Comments

@Erictoby
Copy link
Contributor

수고가 많으시네요. 현재 에러가 생긴것은 아니고 다른 것을 하다가 발견한 것입니다. MemberModel::getMemberInfoByUserID(), getMemberInfoByEmailAddress(), getMemberInfoByPhoneNumber() 가 null 을 리턴하는 경우가 있는데, 만약 null을 리턴하는 상황이 오면,

function doLogin($user_id, $password = '', $keep_signed = false)
{

doLogin(){ } 안의 $member_info->email_address, $member_info->user_id, $member_info->phone_number 부분에서 php 8.x 에러가 생길 가능성이 있을것 같습니다.

반대로, MemberModel::getMemberInfoByMemberSrl(), getMemberInfo() 는 회원이 있으면 $member_info 가 리턴되고, 회원이 없으면 new stdClass 가 리턴되어서 null이 되는 경우가 없다보니까,

$columnList = array('member_srl', 'is_admin');
$member_info = MemberModel::getMemberInfoByMemberSrl($member_srl, 0, $columnList);
if(!$member_info) return new BaseObject(-1, 'msg_not_exists_member');

이 부분이 실행이 안될 것 같고 (그런데, getMemberInfoByMemberSrl는 argument가 1개인데, 위에서는 3개를 넘겨주네요),
$receiver_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
if(!$receiver_info)
{
throw new Rhymix\Framework\Exceptions\InvalidRequest;
}

이 부분도 마찬가지일 것 같습니다~~

@kijin kijin added the improvement 기능 개선 요청 또는 기능 개선 PR label Feb 23, 2022
@kijin
Copy link
Member

kijin commented Mar 10, 2022

요청받은 조건으로 회원을 찾지 못했을 때 모두 일관성있게 stdClass를 반환하거나 모두 null을 반환한다면 좋겠지만, 일관성있게 바꾸기가 무척 어려운 것이 하위호환성 때문입니다. 빈 오브젝트는 null과 달리 참으로 취급되므로, 이걸 바꿨다가는 if(!$member_info)와 같은 코드를 사용하는 기존 자료에서 중요한 보안 체크가 오작동할 수 있습니다. ㅠㅠ

파라미터를 1개만 받는 함수에 3개씩 전달하는 경우는 $site_srl 등 XE에서 사용하다가 라이믹스에서 무의미해진 파라미터를 전달하던 코드가 남아 있을 가능성이 높습니다.

@kijin kijin closed this as completed in 7b46deb Mar 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement 기능 개선 요청 또는 기능 개선 PR
Projects
None yet
Development

No branches or pull requests

2 participants