Yoga Server 2에 대한 GraphQL Armor 지원으로 향상된 보안

This article was published on Wednesday, August 24, 2022 by @ The Guild Blog



Yoga 2와의 호환성GraphQL Armor을 소개하게 되어 매우 기쁩니다.

GraphQL 생태계가 보안에 직면했을 때



몇 주 전에 GraphQL Security 회사Escape는 GraphQL 엔드포인트 위에 보안 계층을 추가하고 일반적인 공격을 완화하는 오픈 소스 미들웨어인 GraphQL Armor를 출시했습니다.

GraphQL Armor는 쿼리에 합리적이고 영리한 제한을 두어 악의적인 요청을 차단합니다. 우리에게 이것은 공개 GraphQL API를 구축할 때와 같이 persisted operations을 사용할 수 없는 경우 이동 솔루션을 나타냅니다. 또한 내부 API를 구축하는 경우에도 이러한 도구는 너무 무거운 GraphQL 쿼리를 방지하는 데 유용할 수 있습니다. 이 기술적 접근 방식은 또한 엔드포인트 강화를 위한 기존 플러그인 세트를 보완합니다.

액세스 제어 및 비즈니스 로직용
  • GraphQL Authzuse-operation-field-permissions
  • use-generic-authuse-auth0 인증용

  • 따라서 Escape 팀과 협력하여 Yoga 및 GraphQL 커뮤니티의 보안 표준과 기본값을 지속적으로 개선하기로 결정했습니다.

    Why couldn't you have production security best practices in Yoga by default?



    GraphQL Armor를 사용하여 무엇을 얻습니까?



    Armor는 모든 프로덕션 GraphQL 서버에 보안 모범 사례를 적용하는 플러그인 세트와 함께 즉시 사용할 수 있습니다.
  • 별칭 제한
  • 문자 제한
  • 비용 제한
  • 깊이 제한
  • 지시어 제한
  • 장애인 필드 제안

  • 매주 더 많은 규칙이 추가됩니다. 그리고 우리는 피드백과 기여에 열려 있습니다!

    기본 구성은 보존을 염두에 두고 설계되었습니다. 프로덕션 프로젝트에 Armor를 추가해도 합법적인 요청을 방해해서는 안 됩니다.

    GraphQL Armor를 Yoga와 함께 사용하면 어떤 모습일까요?



    GraphQL Armor는 보안 규칙을 위해 Envelop 플러그인을 사용합니다.

    시작하기는 매우 간단합니다: npm install -S @escape.tech/graphql-armor (또는 yarn add @escape.tech/graphql-armor )

    그런 다음 최소한의 Yoga 서버를 살펴보겠습니다.

    import { createServer } from '@graphql-yoga/node'
    
    import { schema } from './schema'
    
    export function initServer() {
      const server = createServer({
        schema
      })
      return server
    }
    


    GraphQL 아머를 추가하는 것은 몇 가지 봉투 플러그인을 추가하기만 하면 됩니다.

    import { EnvelopArmor } from '@escape.tech/graphql-armor'
    import { createServer } from '@graphql-yoga/node'
    
    import { schema } from './schema'
    
    const armor = new EnvelopArmor()
    const enhancements = armor.protect()
    
    export function initServer() {
      const server = createServer({
        schema,
        plugins: [...enhancements.plugins]
      })
      return server
    }
    


    이 예제는 예제 리포지토리github.com/dotansimha/graphql-yoga에서 찾을 수 있습니다.



    GraphQL 보안의 미래를 구축하는 데 참여하세요



    Escape 팀은 Armor 및 Yoga Server 지원을 개선하기 위해 적극적으로 노력하고 있습니다.
    이는 전체 GraphQL 생태계의 보안을 강화하기 위한 우리 팀 간의 훌륭한 협업의 시작일 뿐입니다.
    앞으로 더 많은 것이 있습니다!
    언제든지 Armor의 GitHub에 오셔서 ⭐ 스타, 🗣️ 토론, 🎉 새로운 기능 등을 요청하십시오.

    github.com/Escape-Technologies/graphql-armor

    곧 얘기해! 🤟

    좋은 웹페이지 즐겨찾기