【CORS】 gem rack-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 installconfig/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를 참조할 수 없게 된다는 제어가 가능해진다.

참고로 한 기사


  • 【nslookup】명령――도메인명으로부터 IP주소를 조사한다

  • 끝에.



    끝까지 읽어 주셔서 감사합니다
    전직을 위해, 미경험의 상태로부터 Rails를 학습하고 있습니다. 올바른 지식을 꾸준히 착용하고 실력 있는 엔지니어가 되고 싶습니다. 계속해서 투고해 나가는 가운데, 그 때문에의 인풋도 필연적으로 늘어나, 성장에 연결될까라고 생각하고 있습니다.
    지금 현재, 초보자라고 해서 변명은 할 수 없습니다만, 투고의 내용에 잘못되어 있는 곳이나, 덧붙여야 할 곳이 많이 있을까 생각하므로, 지적 받을 수 있으면 다행입니다. 이 기사를 읽어 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기