Nginx jsonp 호출 실현
> curl localhost/jsonptest?callback=cb123
> cb123({'name': 'kobe'});
nginx 에서 이 기능 을 어떻게 실현 하 는 지 소개 한다.우 리 는 nginx 에 우수한 모듈 이 많다 는 것 을 알 고 있 습 니 다. 여기 도 예외 가 아 닙 니 다. 몇 개의 제3자 모듈 에 의존 해 야 합 니 다. 예 를 들 어 ngxdevel, set misc, echo.다운 로드 는 git 를 통 해 편리 합 니 다.
git clone git://github.com/simpl/ngx_devel_kit.git
git clone git://github.com/agentzh/set-misc-nginx-module.git
git clone git://github.com/agentzh/echo-nginx-module.git
nginx 를 다시 컴 파일 하려 면:./configure --prefix=/home/server/NGINX_PREFIX \
--add-module=/home/app/shmmap/ngx_module/ngx_devel_kit/ \
--add-module=/home/app/shmmap/ngx_module/set-misc-nginx-module/ \
--add-module=/home/app/shmmap/ngx_module/echo-nginx-module/
nginx 를 성공 적 으로 컴 파일 한 후 jsonp 를 실현 하 는 구체 적 인 설정 을 살 펴 보 겠 습 니 다.location /jsonptest {
default_type 'application/x-javascript';
# , callback
# set misc set_if_empty 。
# arg_callback ,
set_if_empty $arg_callback '_ntes_quote_callback';
# xss
# js ,
if ($arg_callback ~* (^[^0-9][0-9a-z._]+$)) {
echo_before_body -n "$arg_callback(";
echo -n "{name: 'kobe'}";
echo_after_body -n ");";
}
# js , 403
if ($arg_callback !~* (^[^0-9][0-9a-z._]+$)) {
return 403;
}
}
다음 테스트:> curl localhost:8088/jsonptest?callback=abc123
> abc123({name: 'kobe'});
다음 테스트 xss 공격:> curl 'localhost:8088/jsonptest?callback=alert(123);abc123'
<html>
<head><title>404 Not Found</title></head>
<body bgcolor="white">
<center><h1>404 Not Found</h1></center>
<hr><center>nginx/1.0.5</center>
</body>
</html>
위의 설정 을 통 해 간단 한 jsonp 호출 을 실 현 했 습 니 다. nginx 커 뮤 니 티 는 풍부 하고 우수한 모듈 을 제공 하여 이 를 바탕 으로 풍부 한 응용 을 구축 할 수 있 습 니 다. 예 를 들 어 ngx 를 사용 할 수 있 습 니 다.lua 는 위 와 같은 기능 을 간단하게 실현 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
실례를 통해 json과 jsonp의 원리와 사용 방법을 분석하다aax에서 JSON은 데이터 교환 문제를 해결하는 데 사용되고, JSONP는 전역을 실현합니다. 비고: 크로스 도메인도 서버 에이전트를 통해 해결할 수 있습니다. 이해: JSON은 데이터 교환 형식이고 JSONP는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.