>백엔드 개발 >PHP 튜토리얼 >PHP에서 요청의 가장을 방지하는 방법

PHP에서 요청의 가장을 방지하는 방법

小云云
小云云원래의
2018-05-19 17:00:582150검색

이 기사는 주로 PHP에서 시뮬레이션된 요청을 방지하는 방법을 공유합니다. 도움이 되기를 바랍니다.

1. 일부 웹사이트에서는 이 IP 주소에서 로그인 밀도를 감지하는 방법을 사용합니다. 이때 여러 번 로그인하면 인증 코드를 입력해야 합니다. 이때 CURL 시뮬레이션 제출은 인증 코드 이미지를 분석해야 합니다. 물론 로그인 크랙과 사용자 데이터 유출을 방지하기 위한 조치입니다.

2. 또 다른 방법은 생성된 랜덤코드를 세션에 직접 저장한 후 입력의 숨겨진 필드에 넣는 것입니다. 이는 인증코드보다 훨씬 더 나쁩니다.

3. 자바스크립트 자체는 도메인 간에 제출할 수 없습니다. 제출할 수 없기 때문이 아니라 다른 사람이 자신의 웹사이트를 클릭하여 열거나 iframe을 사용하여 일반 웹페이지를 여는 등 악의적으로 사용자 정보를 도용하는 것을 방지하기 위함입니다. 그런 다음 다른 iframe 훔치기에서 수행합니다.

Ajax 교차 도메인 액세스를 달성하려면

header("Access-Control-Allow-Origin:*"); //跨域权限设置,允许所有

를 설정해야 합니다. ajax 교차 도메인 액세스를 방지하려면

header("Access-Control-Allow-Origin:http://www.test.com"); //只允许test.com跨域提交数据

4를 설정해야 합니다. 게시물 요청과 같은 PHP 시뮬레이션 요청을 방지하려면, 그런 다음 Ajax 요청을 처리할 수 있도록 설정할 수 있습니다.

//判断是否为ajax请求,防止别人利用curl的post抓取数据
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])&&strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ }

완벽한 솔루션:

header("Access-Control-Allow-Origin:http://leshen.applinzi.com/cet"); //只允许本站提交数据,前端防ajax跨域,其实js本来就不能跨域 

//判断是否为ajax请求,后端防止别人利用curl的post抓取数据
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])&&strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ 
    //处理业务逻辑
}else{ 
    echo "we caught you! you have no access!";
};

위 내용은 PHP에서 요청의 가장을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.