내가 작성한 자바 스크립트 코드로만로드되고 실행될 수 있도록 PHP 파일을 만드는 방법이 있습니까? 나는 누군가가 내 JS를 읽을 수없고 브라우저에서 PHP 페이지를 자신의 변수로로드하고 데이터베이스를 무단으로 변경할 수 있는지 확인할 수 있습니까? 도움을 주시면 감사하겠습니다.PHP가 JS에서만로드되고 있는지 확인하는 방법이 있습니까?
답변
번호
$_SERVER['HTTP_X_REQUESTED_WITH']
설정하고 "XMLHttpRequest의"에 해당되는 경우 당신은 확인할 수 있지만,이 위조 할 수 있습니다 단지 HTTP 헤더입니다.
자바 스크립트는 여러 가지 방법으로 재생할 수있는 표준 HTTP 요청을 만듭니다. HTTP는 신뢰할 수있는 방법으로 클라이언트를 구별 할 수있는 기능을 제공하지 않는 매우 단순한 프로토콜입니다. 동일한 요청은 동일합니다. HTTP를 기반으로 사용자 식별 및 권한 부여 체계를 직접 작성해야하며 프로토콜의 일부가 아닙니다. 서버는 승인 된 내용과 누가 사용자가 묻는 질문이 아닌 규칙 (사용자가 설정 한)을 기반으로하지 않는 것을 결정하고 시행해야합니다.
내가 작성한 자바 스크립트 코드로만로드하여 실행할 수 있도록 PHP 파일을 만드는 방법이 있습니까?
신뢰할 수 없으면 아니오. 모든 요청은 클라이언트 측에서 위조 될 수 있습니다. 이 방법은 보안을 설정하는 데 사용할 수 없습니다. 서버 측에서 일종의 인증을 사용해야합니다.
아니요. 예를 들어, 10 줄 프로그램을 작성하는 것이 간단합니다. 파이썬, 어떤 사용자 에이전트를 속일 수 있습니다. 어떠한 상황에서도 사용자가 귀하에게 보내는 어떤 것도 믿을 수 없습니다.
이렇게하면 가족 전체, 조상 모두에게 부끄러움을 느끼게되고 자손들이 "그 사람"의 후손으로 영원히 낙인 찍히게됩니다.
아마도 자바 스크립트가 보낸 요청 헤더를 확인할 수 있습니다. AJAX 호출은 다음 줄을 보내야합니다.
X-Requested-With: XMLHttpRequest
JavaScript는 기본적으로이 헤더를 보내지 않으며 Ajax 구현에서 특정 JavaScript 라이브러리/프레임 워크 만 수행합니다. – BoltClock
안전하지 않습니다. -1. OP는 이것을 보안 목적으로 명시 적으로 언급하고 있습니다. –
- 1. Facebook : 특정 권한이 있는지 확인하는 방법이 있습니까?
- 2. 노래가 iPhone에 있는지 확인하는 방법이 있습니까?
- 3. Silverlight의 DataGrid에 포커스가 있는지 확인하는 방법이 있습니까?
- 4. 포인터가 매달려 있는지 확인하는 방법이 있습니까?
- 5. 탐색 스택에 페이지가 있는지 확인하는 방법이 있습니까?
- 6. PHP가 가장 저렴한 방법 원격 이미지가 있는지 확인하는 방법
- 7. 예외가 발생하는지 확인하는 방법이 있습니까?
- 8. Entity Framework : 컨텍스트에 개체가 있는지 확인하는 방법이 있습니까?
- 9. 사용자가 전화를하는 동안 앱을 사용하고 있는지 확인하는 방법이 있습니까?
- 10. 유선 헤드셋이 전화에 연결되어 있는지 확인하는 방법이 있습니까
- 11. 데이터베이스 커서가 Java에서 열려 있는지 확인하는 방법이 있습니까?
- 12. PGResult가 비어 있는지 확인하는 더 간결한 방법이 있습니까?
- 13. jQuery가 이미 html 페이지에 첨부되어 있는지 확인하는 방법이 있습니까?
- 14. HTML : 요소가 다른 요소 뒤에 있는지 확인하는 방법이 있습니까?
- 15. 디렉토리에 하위 디렉토리가 있는지 여부를 확인하는 방법이 있습니까?
- 16. param이 클래스 또는 클래스 인스턴스를 포함하고 있는지 확인하는 방법이 있습니까?
- 17. 사용자가 텍스트 입력 컨트롤을 사용하고 있는지 여부를 확인하는 방법이 있습니까?
- 18. htmlunit이 올바른 명령을 수행하고 있는지 시각적으로 확인하는 방법이 있습니까?
- 19. PHP - 여러 파일이 데이터베이스에 있는지 확인하는 좋은 방법이 있습니까?
- 20. sdcard가 마운트되어 있는지 또는 설치되지 않았는지 확인하는 방법이 있습니까?
- 21. 디렉토리를 가리키는 심볼릭 링크가 있는지 확인하는 방법이 있습니까?
- 22. 안전하게 Page.IsValid를 사용할 수 있는지 확인하는 방법이 있습니까?
- 23. 중앙 Mercurial repostiory에서 가져올 수있는 업데이트가 있는지 확인하는 방법이 있습니까?
- 24. iPhone/iPad 앱이 이미 설치되어 있는지 확인하는 방법이 있습니까?
- 25. 거기에 단어가 결정된 관용구에 있는지 확인하는 방법이 있습니까?
- 26. ExternalInterface.call의 출처를 확인하는 방법이 있습니까?
- 27. 함수가 unittest에서 실행되는지 여부를 확인하는 방법이 있습니까?
- 28. JavaScript에서 변수가 날짜인지 확인하는 방법이 있습니까?
- 29. 문자열이 유효한 xpath인지 확인하는 방법이 있습니까?
- 30. 내 프록시가 온라인 상태인지 확인하는 방법이 있습니까?
감사합니다. JS/PHP 요청 및 응답 모델을 안전하게 구축하는 방법을 보여줄 수있는 기회가 있습니까? – dshipper
@dshipper "공개 API"인 경우이를 보호 할 실제 방법이 없습니다. 사용자 로그인이 필요하고 세션 쿠키 (모든 AJAX 요청과 함께 전송되는)를 사용하는 경우이 정보를 사용하여 특정 사용자를 식별하고이 사용자가 특정 작업을 수행 할 권한이 있는지 여부를 결정할 수 있습니다. 사용자 = 모든 요청에 대해 하나의 보안 규칙 = 권한 없음 자신의 상황에 대한 더 자세한 정보가 담긴 새로운 질문을 열어 더 많은 제안을 얻으십시오. – deceze
좋아, 다시 감사드립니다! – dshipper