sourcetip

로컬 호스트에서만 get/post 요청 수락

fileupload 2023. 10. 20. 14:07
반응형

로컬 호스트에서만 get/post 요청 수락

데이터 크기가 웹 앱에서 로드해야 할 정도로 작지 않기 때문에 가끔 꽤 느려지기 때문에 요청 시 특정 데이터를 로드하고 캐시에 저장하기 위해 jQuery ajax 함수를 추가하기로 했습니다.

제가 알고 싶은 것은 어떤 것을 제한할 수 있느냐는 것입니다.GET아니면POSTlocalhost/same server/same ip에서만 요청하여 외부에서 앱으로 호출을 피할 수 있습니까?

즉, 데이터를 반환하는 나의 php 함수는 localhost에서 요청하는 경우에만 데이터를 반환해야 합니다.

내 웹 앱은 CodeIgniter의 프레임워크에서 실행되고 내 웹 서버의 구성은 우분투에서 실행되는 LAMP입니다.

무슨 생각 있어요?

당신이 사용할 수 있는 컨스트럭터에서

if ($_SERVER['SERVER_ADDR'] != $_SERVER['REMOTE_ADDR']){
  $this->output->set_status_header(400, 'No Remote Access Allowed');
  exit; //just for good measure
}

하지만 이 방법이 원하는 방법이 아니라면...htaccess빠른 Google 검색을 수행하여 get/post 거부에 대한 특정 예제를 모두에게 반환한 다음 127.0.0.1/localhost를 허용할 수 있습니다.

.htaccess를 사용하는 것이 아마도 가장 좋은 방법일 것입니다. 로컬 주소와 127.0.0.1에서만 허용합니다.petergasser.com 에서 이 예시를 찾았는데 약간만 바꿨습니다.

AuthName "bla"  
AuthType Basic  
<Limit GET POST>  
order deny,allow  
deny from all 
allow from 127.0.0.1
allow from <your-ip-here>
</Limit>  

키(API 키 생각)를 사용하여 요청을 서버로 전송합니다.그런 다음 서버에서 해당 키를 확인하고 올바른 키인지 확인하면 데이터를 반환합니다.

@gorrelative 덕분에 이렇게 씁니다.

if( 
isset($_SERVER['REMOTE_ADDR']) AND ( $_SERVER['REMOTE_ADDR'] !== $_SERVER['SERVER_ADDR'] )
){
 die(' Access Denied, Your IP: ' . $_SERVER['REMOTE_ADDR'] );
}

언급URL : https://stackoverflow.com/questions/9872751/accepting-get-post-requests-only-from-localhost

반응형