2012-07-20 1 views
0

고객이 사이트에 등록 할 때 사용자 이름/이메일을 사용할 수 있는지 여부를 알려야합니다. 우리는 고객이 원하는 사용자 이름/이메일을 사용할 수 있는지 여부를 보여주는 jquery 스크립트를 제공하는 목적으로 사용되는 httphandler를 보유하고 있습니다.ASP.net 처리기의 오용 방지

질문은 다음과 같습니다. 피들러에서 요청을 볼 때 서비스가 명확하게 호출되는 것을 볼 수 있습니다. /emlhandler.asmx?name=xxxxxxxxxxxyy.com을 표시합니다.

처리기에서 이름/주소를 사용할 수 있는지 여부를 나타내는 간단한 0 또는 1이 반환됩니다.

내 관심사는 미숙 한 사람이 사이트의 모든 사용자를 발견하기 위해 매우 쉽게 사용할 수있는 주요 보안 문제 인 것 같습니다.

친구라면 사이트 정보를 어떻게 보호하고 훌륭한 사용자 환경을 제공하는 ajax 콜백을 허용합니까?

감사합니다. 히스

답변

0

당신은 약간 편집병 적입니다. 사용자 등록을 허용하는 모든 사이트는 비슷한 것을해야합니다. 당신이 합리적으로 할 수있는 한가지는 무차별 대입 공격의 가능성이나 용이성을 줄이기 위해 핸들러의 처리에 약간의 지연 (아마도 2 또는 3 초)을 추가하는 것입니다. 솔직히, 나는 아무도 신경 쓰지 않을 것이라고 생각한다.

또 다른 옵션은 사용자의 등록이 실제로 활성화되기 전에 반복 이메일을 무시하고 확인 이메일을 보내는 것입니다. 새 사용자가 기존 이메일을 사용하려고 시도하면 원래 이메일 소유자가 확인을 받고이를 취소하거나 무시할 수 있습니다. 그러나 나는 이것을 추천하지 않는다.

내가 "비밀번호를 잊으 않았다 ...이 이메일 주소는 이미 등록?"난 그냥 바로 말할 것이다 사용했던 사이트의 대부분을 말하고 싶지만 특정 사이트에서 이메일 주소가 이미 사용되고 있다는 것을 아는 것만으로는 보안 침해가 발생하지 않습니다.

0

한 가지 가능한 솔루션은 그 방법 POST 요청을 가능하게하는 것입니다.

그리고 승인없이 다른 도메인의 JavaScript (XSS - Cross-Site Scripting)에서 서비스를 호출 할 수 없으므로 보호받을 수 있습니다.

그러나이 기술을 사용하면 악의적 인 사용자가 웹 서비스를 호출하여 사용자 이름을 검색 할 수는 없지만 사용자가 텍스트 상자에 데이터를 입력하는 프로세스를 자동화하여 사용자가 서비스를 강제로 호출하지 못하게 할 수는 없습니다. 이 경우 사용자 당 몇 가지 요청 만 허용 할 수 있습니다 (X).

또 다른 approac이 사이트에 re Captcha를 추가하는 것입니다 당신이 허용하는 데 사용하는 경우 당신은, 그러나이 응답의 수준을 감소 것 웹 서비스에서 Session 객체를 사용하여 시도 횟수를 추적 할 수 귀하의 사용자가 사용자 이름을 캡처하고 귀하의 서비스를 호출하는 즉시 작성하십시오. 구현은 데이터를 전송하기 위해 자동 생성 보안 문자를 작성하는 사용자를 필요로