2014-01-05 3 views
1

나는 PHP로 html5 (Intel XDK)와 코딩 서버 측을 갖춘 모바일 애플리케이션을 개발 중이다. 내 응용 프로그램에서 사용자는 모바일에서 서버로 이미지를 업로드 할 수 있습니다. 그러나 이 사용자가에 세션으로 로그인했는지 확인하기 위해 서버 측 코드를 변경하면 세션 변수가 null을 반환합니다. 내 코드는 아래와 같습니다.PHP 세션에서 XMLHttpRequest 사용하기

var par= new FormData(document.getElementById('form')); 
var obj= new XMLHttpRequest(); 
... 
obj.open('POST', 'url.com/upload.php'); 
obj.send(par); 

그리고 서버 측 코드에서 세션 변수를 확인하고 싶습니다.

if($_SESSION['user_logged_in'] == 1) 

나는이 문제를 조사했으나 결과에는 약간의 문제가 있습니다. 예를 들어, 아래의 게시물에서 대답은 세션 ID가 클라이언트 측에서 유지되어야한다고 말하지만 보안 문제로 인해 좋은 해결책이 아닌 것 같습니다.

How to pass php session with XMLHttpRequest

은이 문제에 대한 좋은 iplementation이 있습니까? 미리 감사드립니다.

편집 : session_start를 호출하고 로그인을 제거하면 확인이 작동합니다. Ajax로 호출 한 다른 페이지는 세션 변수에 도달합니다. 보안에 대한 나의 의심은 내 세션 ID가 소스 코드에 표시된다는 것입니다. 보안 문제가되지 않습니까?

+0

세션 쿠키가 요청과 함께 전송되는지 여부를 (바이올린, 크롬 도구 등으로) 확인할 수 있습니까? 그리고 upload.php의 시작 부분에 session_start()를 호출하고 있습니까? – johnnycardy

+1

세션 ID를 전달하는 데 문제가 없어야합니다. 브라우저가 세션에서 정상적으로 작동한다고 어떻게 생각하십니까? – geedubb

+0

@johnnycardy 예 세션을 시작합니다. – PepeDeLew

답변

0

클라이언트 측에서 세션 ID를 유지하지 않으면 서버에서 어떻게 식별 할 수 있습니까? 강하게 생성 된 세션 ID로 세션 ID를 변경할 수 있습니다. 가장 좋은 방법입니다.

쿠키가 활성화되어 있는지 확인하십시오. 그래서 디버깅을해야합니다.

+0

내 코드를 확인하고, 세션이 아약스 게시와 함께 호출 한 페이지에서 작동하고 있습니다. – PepeDeLew

1

App Security API Cordova 플러그인을 사용하여 세션 토큰/id에 대한 보호 수단을 향상시킬 수 있습니다. 이 Cordova 플러그인 here에 대한 자세한 내용을 확인할 수 있습니다. '보안 저장소에 저장'및 '보안 저장소에서 읽기'코드 스 니펫에 대한 링크도 있습니다. here.

덧붙여서, App Security API는 Intel XDK에서 지원됩니다. 플러그인 관리 메뉴 -> 기능별 플러그인 -> App Security API -> '플러그인 추가'를 클릭하여 응용 프로그램에 추가 할 수 있습니다. '.