2010-12-27 2 views
0

내가 작성한 자바 스크립트 코드로만로드되고 실행될 수 있도록 PHP 파일을 만드는 방법이 있습니까? 나는 누군가가 내 JS를 읽을 수없고 브라우저에서 PHP 페이지를 자신의 변수로로드하고 데이터베이스를 무단으로 변경할 수 있는지 확인할 수 있습니까? 도움을 주시면 감사하겠습니다.PHP가 JS에서만로드되고 있는지 확인하는 방법이 있습니까?

답변

5

번호

$_SERVER['HTTP_X_REQUESTED_WITH'] 설정하고 "XMLHttpRequest의"에 해당되는 경우 당신은 확인할 수 있지만,이 위조 할 수 있습니다 단지 HTTP 헤더입니다.

자바 스크립트는 여러 가지 방법으로 재생할 수있는 표준 HTTP 요청을 만듭니다. HTTP는 신뢰할 수있는 방법으로 클라이언트를 구별 할 수있는 기능을 제공하지 않는 매우 단순한 프로토콜입니다. 동일한 요청은 동일합니다. HTTP를 기반으로 사용자 식별 및 권한 부여 체계를 직접 작성해야하며 프로토콜의 일부가 아닙니다. 서버는 승인 된 내용과 누가 사용자가 묻는 질문이 아닌 규칙 (사용자가 설정 한)을 기반으로하지 않는 것을 결정하고 시행해야합니다.

+0

감사합니다. JS/PHP 요청 및 응답 모델을 안전하게 구축하는 방법을 보여줄 수있는 기회가 있습니까? – dshipper

+0

@dshipper "공개 API"인 경우이를 보호 할 실제 방법이 없습니다. 사용자 로그인이 필요하고 세션 쿠키 (모든 AJAX 요청과 함께 전송되는)를 사용하는 경우이 정보를 사용하여 특정 사용자를 식별하고이 사용자가 특정 작업을 수행 할 권한이 있는지 여부를 결정할 수 있습니다. 사용자 = 모든 요청에 ​​대해 하나의 보안 규칙 = 권한 없음 자신의 상황에 대한 더 자세한 정보가 담긴 새로운 질문을 열어 더 많은 제안을 얻으십시오. – deceze

+0

좋아, 다시 감사드립니다! – dshipper

0

내가 작성한 자바 스크립트 코드로만로드하여 실행할 수 있도록 PHP 파일을 만드는 방법이 있습니까?

신뢰할 수 없으면 아니오. 모든 요청은 클라이언트 측에서 위조 될 수 있습니다. 이 방법은 보안을 설정하는 데 사용할 수 없습니다. 서버 측에서 일종의 인증을 사용해야합니다.

0

아니요. 예를 들어, 10 줄 프로그램을 작성하는 것이 간단합니다. 파이썬, 어떤 사용자 에이전트를 속일 수 있습니다. 어떠한 상황에서도 사용자가 귀하에게 보내는 어떤 것도 믿을 수 없습니다.

이렇게하면 가족 전체, 조상 모두에게 부끄러움을 느끼게되고 자손들이 "그 사람"의 후손으로 영원히 낙인 찍히게됩니다.

-2

아마도 자바 스크립트가 보낸 요청 헤더를 확인할 수 있습니다. AJAX 호출은 다음 줄을 보내야합니다.

X-Requested-With: XMLHttpRequest 
+1

JavaScript는 기본적으로이 헤더를 보내지 않으며 Ajax 구현에서 특정 JavaScript 라이브러리/프레임 워크 만 수행합니다. – BoltClock

+1

안전하지 않습니다. -1. OP는 이것을 보안 목적으로 명시 적으로 언급하고 있습니다. –

관련 문제