AppEngine은 작업의 특정 헤더에 대해 일부 보증합니다. 특히, X-AppEngine-QueueName
과 같은 헤더 집합은 사용자가 설정할 수 없습니다.AppEngine 헤더에서 대소 문자를 구분하지 않는 것이 안전합니까?
이러한 헤더는 App Engine에서 내부적으로 설정합니다. 외부 사용자 요청이 이러한 헤더를 설정하려고 시도하면 해당 헤더가 제거됩니다. 따라서 요청 핸들러가 요청에서이 헤더 중 하나를 찾으면 해당 태스크 큐 요청이 유효 함을 보장합니다.
이 GAE (webapp
및 webapp2
)에서 제공하는 두 웹 프레임 워크가 webob.Request
에서 상속 Request
개체가 나타납니다. 불행히도, 내가 알 수있는 한 webob.Request
은 case-insensitive way의 헤더 만 노출합니다. AppEngine은 사용자가 대소 문자를 구분하지 않고 요청 헤더를 제공 할 수 없다고 보장합니까?
즉, 사용자가 요청에 X-AppEngine-Queuename
헤더를 설정하여 통과 시키면 (webob
은 해당 헤더와 GAE가 제공 한 실제 메시지를 구분할 수 없나요?)
webapp2
프레임 워크에서 내 요청이 악의적 인 사용자의 결과가 아닌 작업으로 시작되도록 어떻게 보장합니까?
아마도 HTTP 헤더가 [RFC2616 : 4.2] (http://stackoverflow.com/a/5259004/748858)에 따라 대소 문자를 구분하지 않기 때문에 이것이 정상이라고 가정 할 수 있습니까? – mgilson
내 요청 중 하나와 함께'X-AppEngine-QueueName' 헤더를 설정하려고했습니다. 핸들러에서 자동으로 헤더 키 중 하나 인'X-Appengine-Queuename'으로 바뀝니다. –
worker.yaml 파일에'admin : true'를 설정하여 worker 서비스 핸들러를 보호 할 수 있습니다. –