문제

ASP.NET 응용 프로그램에서 사용자가 어디에서 왔는지 확인하는 안정적인 방법이 있습니까?서로 다른 두 위치에서 연결된 웹 애플리케이션이 있습니다.두 링크는 ​​별도의 도메인에 있으며 이 앱 내에서 특정 사용자 권한을 지정해야 합니다.내가 지금까지 시도한 것은 다음과 같습니다 ...

  • 사용 Request.UrlReferrer (이것은 추천인 HTTP 헤더).이는 항상 빈 문자열을 반환했습니다.나는 하이퍼링크가 Javascript를 사용하여 팝업 창을 실행하기 때문이라고 생각합니다.내 연구에 따르면 사용자 에이전트는 표준 하이퍼링크에 이 HTTP 헤더를 제공합니다.Javascript 팝업은 (분명히) 다른 이야기입니다.

  • 리퍼러를 나타내는 간단한 쿼리 문자열입니다.우회하기 쉽지 않은(보다 안전한) 것이 필요하기 때문에 이는 실제로 옵션이 아닙니다.

어떤 아이디어가 있나요?나는 전체적인 계획에서 이것이 더 나은 전반적인 디자인/구조를 가질 수 있다는 것을 이해합니다.모든 것을 다시 디자인할 것을 제안하는 답변을 게시하지 마십시오. 이는 선택 사항이 아니기 때문입니다.

도움이 되었습니까?

해결책

사용자가 어디에서 왔는지 알 수 있는 신뢰할 수 있는 방법은 없으며 이는 ASP.NET 제한 사항뿐만 아니라 일반적으로 모든 웹 응용 프로그램의 제한 사항입니다.URL 리퍼러는 쉽게 스푸핑될 수 있으므로 신뢰할 수 없습니다.가장 좋은 옵션은 암호화된 URL 매개변수나 원하는 경우 쿠키가 될 수 있다고 생각합니다.

따라서 두 페이지 모두 공통 개인 키에 동의해야 합니다.

  1. Page1은 키를 사용하여 주소를 암호화하고 이를 Page2에 전달합니다.
  2. Page2는 이 매개변수가 있는지 확인하고 암호화에 사용된 것과 동일한 개인 키를 사용하여 해독을 시도합니다.
  3. 이것이 성공하면 Page2는 누가 전화했는지 확인할 수 있으며, 그렇지 않은 경우 데이터가 변조되었음을 의미합니다.

다른 팁

브라우저가 리퍼러를 전달하거나 설명하는 쿼리 문자열을 사용하지 않으면 알 수 있는 방법이 없습니다.

또 다른 옵션은 ASP.NET 응용 프로그램에 두 개의 서로 다른 랜딩 페이지를 두는 것입니다.랜딩 페이지는 보안 옵션을 설정한 후 일반 홈페이지로 리디렉션할 수 있습니다.이는 querystring 옵션보다 조금 더 안전합니다.

또는 ASP.NET 응용 프로그램 사이트에서 가져온 참조 사이트에 1x1 픽셀 이미지를 배치할 수 있습니다.리퍼러는 스크립트에 전달되어야 하며 사용자 컴퓨터에 쿠키를 설정하여 사용자가 앱 홈페이지를 방문할 때 참조할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top