【CORS】 gem rack-cors와 크로스 오리진에 대해서
3185 단어 RailsCORSrack-cors젬크로스 오리진 제약
소개
gem grape로 API를 작성할 때, 여러가지 기사에 써 있던 CORS에 대해 조사해, 배웠으므로 정리해 둔다.
CORS (Cross-Origin Resource Sharing)
오리진이라고 하는 것이 있어, 그것을 (Cross) 나아가 정보를 공유하는 것.
오리진은?
자원 자신의 URL의 「스킴」 「호스트」 「포트」의 3개의 편성을 「오리진」이라고 한다.
http://example.com:8080
이 오리진의 경우,
http
체계
example.com
호스트
:8080
포트
이 어딘가가 다르면 다른 오리진이 된다.
nslookup 명령
이것은, 도메인명으로부터 IP 주소를 조사하거나, 그 반대로 IP 주소로부터 도메인명을 조사할 때에 사용하는 커멘드로,
nslookup http://example.com:8080
등으로서, 도메인명으로부터 컴퓨터가 통신시에 사용하는 IP주소를 검색한다(이름해결이라고 한다)했을 때에, 다른 IP주소인 경우는, 크로스 오리진이라고 말할 수 있다.
이 서로 다른 IP 주소가 요청을 보내는 것을 크로스 오리진이라고합니다.
gem rack-cors
이것은 grape등으로 API를 작성했을 때에, 다른 오리진으로부터의 액세스를 제어하는 설정을 실시하는 것으로, gem을 추가해 bundle install
해 config/application.rb
에 간단한 설정을 추가하는 것만으로 곧바로 사용할 수 있다 .
여기을 확인하고 다음과 같이 설정합니다.
config/application.rbmodule app_name
class Application < Rails::Application
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: [:get, :post, :options]
end
end
end
end
이 origins 등의 "*"는 전부라는 의미로, 이 경우는 다른 모든 오리진으로부터의 액세스를 허가하고 있는 것이 된다.
반대로, 프로덕션 환경에서 여기에 자신의 도메인 이름을 넣는 것으로,
다른 사이트에서 자신이 만든 API를 참조할 수 없게 된다는 제어가 가능해진다.
참고로 한 기사
오리진이라고 하는 것이 있어, 그것을 (Cross) 나아가 정보를 공유하는 것.
오리진은?
자원 자신의 URL의 「스킴」 「호스트」 「포트」의 3개의 편성을 「오리진」이라고 한다.
http://example.com:8080
이 오리진의 경우,http
체계
example.com
호스트
:8080
포트
이 어딘가가 다르면 다른 오리진이 된다.
nslookup 명령
이것은, 도메인명으로부터 IP 주소를 조사하거나, 그 반대로 IP 주소로부터 도메인명을 조사할 때에 사용하는 커멘드로,
nslookup http://example.com:8080
등으로서, 도메인명으로부터 컴퓨터가 통신시에 사용하는 IP주소를 검색한다(이름해결이라고 한다)했을 때에, 다른 IP주소인 경우는, 크로스 오리진이라고 말할 수 있다.
이 서로 다른 IP 주소가 요청을 보내는 것을 크로스 오리진이라고합니다.
gem rack-cors
이것은 grape등으로 API를 작성했을 때에, 다른 오리진으로부터의 액세스를 제어하는 설정을 실시하는 것으로, gem을 추가해 bundle install
해 config/application.rb
에 간단한 설정을 추가하는 것만으로 곧바로 사용할 수 있다 .
여기을 확인하고 다음과 같이 설정합니다.
config/application.rbmodule app_name
class Application < Rails::Application
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: [:get, :post, :options]
end
end
end
end
이 origins 등의 "*"는 전부라는 의미로, 이 경우는 다른 모든 오리진으로부터의 액세스를 허가하고 있는 것이 된다.
반대로, 프로덕션 환경에서 여기에 자신의 도메인 이름을 넣는 것으로,
다른 사이트에서 자신이 만든 API를 참조할 수 없게 된다는 제어가 가능해진다.
참고로 한 기사
nslookup http://example.com:8080
이것은 grape등으로 API를 작성했을 때에, 다른 오리진으로부터의 액세스를 제어하는 설정을 실시하는 것으로, gem을 추가해
bundle install
해 config/application.rb
에 간단한 설정을 추가하는 것만으로 곧바로 사용할 수 있다 .여기을 확인하고 다음과 같이 설정합니다.
config/application.rb
module app_name
class Application < Rails::Application
config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: [:get, :post, :options]
end
end
end
end
이 origins 등의 "*"는 전부라는 의미로, 이 경우는 다른 모든 오리진으로부터의 액세스를 허가하고 있는 것이 된다.
반대로, 프로덕션 환경에서 여기에 자신의 도메인 이름을 넣는 것으로,
다른 사이트에서 자신이 만든 API를 참조할 수 없게 된다는 제어가 가능해진다.
참고로 한 기사
끝에.
끝까지 읽어 주셔서 감사합니다
전직을 위해, 미경험의 상태로부터 Rails를 학습하고 있습니다. 올바른 지식을 꾸준히 착용하고 실력 있는 엔지니어가 되고 싶습니다. 계속해서 투고해 나가는 가운데, 그 때문에의 인풋도 필연적으로 늘어나, 성장에 연결될까라고 생각하고 있습니다.
지금 현재, 초보자라고 해서 변명은 할 수 없습니다만, 투고의 내용에 잘못되어 있는 곳이나, 덧붙여야 할 곳이 많이 있을까 생각하므로, 지적 받을 수 있으면 다행입니다. 이 기사를 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(【CORS】 gem rack-cors와 크로스 오리진에 대해서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/waniwaninowani/items/f552176d5bd273045d74텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)