문제

저는 ISV에서 호스팅하는 동문 그룹을 위한 작은 웹사이트를 관리해야 합니다.URL은 www.myIsv.com/myWebSite/와 같은 형식으로 매우 보기 흉하고 잊어버리기 쉽습니다.웹 서버의 기본 관리자는 www.mysmallwebsite.com이라는 도메인 이름을 등록하고 다음 내용이 포함된 index.html을 넣었습니다.

<html>
<head>
<title>www.mysmallwebsite.com</title>
</head>

<frameset>
   <frame src="http://www.myIsv.com/myWebSite/" name="redir">
      <noframes>
        <p>Original location:
          <a href="www.myIsv.com/myWebSite/">http://www.myIsv.com/myWebSite/</a>
        </p>
      </noframes>
 </frameset>  
</html>

잘 작동하지만 PHP 세션 변수와 같은 일부 기능은 더 이상 작동하지 않습니다!누구든지 그 문제를 해결하기 위한 제안이 있습니까?

편집하다:IE와 Firefox 모두에서 작동하지 않습니다(플러그인 없음).

감사해요

도움이 되었습니까?

해결책

세션은 서버에 연결되어 있습니다 그리고 도메인.도메인 전체에서 프레임셋을 사용하면 원래 의도된 방식이 아니기 때문에 모든 종류의 손상이 발생합니다.

Apache Mod Rewrite를 사용하여 "패스스루 리디렉션"을 생성해 보십시오.대리규칙의 " 플래그([P])는 필요한 마법 플래그입니다.

문서: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

다른 팁

무슨 뜻이에요?www.mysmallwebsite.com에서 www.myIsv.com/myWebSite/로 이동하면 PHP 세션이 손실된다는 말씀이신가요?

PHP는 ID(서버에서 생성된 영숫자 해시)로 세션을 인식합니다.ID는 PHPSESSID 또는 이와 유사한 쿠키를 사용하여 요청에서 요청으로 전달됩니다(브라우저의 도움으로 웹사이트에서 설정한 쿠키를 볼 수 있습니다...Firefox에는 Firebug + FireCookie와 멋진 웹 개발자 도구 모음이 있습니다.땀을 흘리지 않고도 쿠키 목록을 볼 수 있습니다).

그래서 ...PHP는 PHPSESSID 쿠키를 통해 세션 ID를 전달합니다.그러나 세션 ID를 일반 GET 요청 매개변수로 전달할 수 있습니다.

따라서 추악한 도메인 이름에 html 링크를 배치할 때 동일한 PHP 서버(동일한 세션이 초기화됨)라고 가정하면 다음과 같이 배치할 수 있습니다.

www.myIsv.com/myWebSite/?PHPSESSID=<?=session_id()?>

나는 한동안 PHP로 작업하지 않았지만 이것이 효과가 있을 것이라고 생각합니다.

다음을 누르면 세션 변수가 작동합니까? http://www.myIsv.com/myWebSite/ 곧장?제가 보기에는 서버 구성이 세션 작동 여부를 결정하는 것 같습니다.그러나 www.mysmallwebsite.com에서 세션을 시작하는 경우(PHP를 사용하는 것처럼 보이지는 않지만 실제로 사용하고 있을 수도 있음) 백엔드를 작성하지 않고는 세션 데이터를 전송할 수 없습니다. 세션을 서버에서 서버로 이동하는 논리입니다.

스크립트 시작 부분에 session_start()를 추가하고 변수에 다시 액세스할 수 있는지 확인하세요.

클라이언트 세션이 도메인별로 이루어지기 때문에 작동하지 않습니다.모든 쿠키는 mysmallwebsite.com에 저장되므로 myIsv.com은 해당 쿠키에 액세스할 수 없습니다.

@pix0r www.myisv.com/mywebsite/-> 세션 변수 작업 www.mysmallwebsite.com-> 세션 변수 작동하지 않습니다.

@Alexandru 불행히도 이것은 같은 웹 서버에 있지 않습니다

어떤 브라우저/애드온을 가지고 있나요?브라우저나 다른 소프트웨어(웹 서버일 수도 있음)가 세션을 차단하고 있을 수 있습니다. http://www.myIsv.com/myWebSite/ 다른 사이트에 있기 때문에 프레임 내부에서 작업하며 XSS 공격이라고 생각합니다.

세션이 다음에서 작동하는 경우 http://www.myIsv.com/myWebSite/ 프레임이 없으면 언제든지 리디렉션할 수 있습니다. http://www.mysmallwebsite.com 프레임을 사용하는 대신 추악한 URL로 이동합니다.

편집하다:방금 세션을 사용하는 내 사이트에서 프레임 코드를 시도했는데 Firefox는 로그인하고 로그인 상태를 유지하면서 잘 작동했지만 IE7에서는 다시 바로 로그아웃했습니다.

따라서 추악한 도메인 이름에 html 링크를 배치할 때 동일한 PHP 서버(동일한 세션이 초기화됨)라고 가정하면 다음과 같이 배치할 수 있습니다.

www.myIsv.com/myWebSite/?PHPSESSID=<?=session_id()?>

보안의 관점에서 볼 때 이것이 작동하지 않기를 정말로 바랍니다.

사용자 측에서 쿠키를 설정한 다음 리디렉션 후 직접 해당 쿠키가 있는지 확인할 수도 있습니다. 이는 친숙한 URL이 걱정된다면 쿼리 문자열에서 PHPSESSID를 전달할 필요가 없음을 의미합니다. .

사람들이 @ www.mysmallwebsite.com에 도착하면 다음으로 리디렉션하겠습니다. http://www.myIsv.com/myWebSite/

<?php header('Location: http://www.myIsv.com/myWebSite/'); ?>

이것이 내가 www.mysmqllwebsite.com/index.php에 있는 전부입니다.
이렇게 하면 browserdr 호환성이나 세션 작동 날씨에 대해 걱정할 필요 없이 리디렉션만 수행하면 괜찮을 것입니다.

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