appengine docs에서 언급 한 바와 같이 일반 BLOB 처리기를 구현했습니다. 핸들러는 blob의 키 문자열을 알고있는 한 임의의 blob을 제공합니다. 클라이언트가 파일을 다운로드하는 데 사용할 수있는 URL을 쉽게 작성하는 데 사용하고 있습니다. 클라이언트 A가 URL을 검사하여 파일을 다운로드하고 Blob 키 (예 : 1CX2kh468IDYKGcDUiq5c69u8BRXBtKBYcIaJkmSbSa4QY096gGVaYCZJjGZUpDz == str(BlobKey)
)를 찾으면이 키를 리버스 엔지니어하여 클라이언트 B의 파일을 다운로드하는 데 사용할 수있는 다른 키를 쉽게 만들 수 있습니까? 또는 키에 임의의 구성 요소가 추가 되었습니까? 키의 캐릭터 라인 표현이 비밀 보이지만, 암호화되지 된다str (BlobKey)은 얼마나 안전합니까?
주 : 참고로
은 약
str(db.Key)
, 내 문제를 제기 무엇 인 this note있다! 종류 및 식별자 인 원시 키 데이터로 다시 변환 할 수 있습니다. 이 데이터를 사용자에게 공개하고 싶지 않다면 ( 은 다른 엔터티의 키를 쉽게 추측 할 수 있음)이 문자열을 암호화하거나 다른 것을 사용하십시오.
, 어떻게 create()
은 "선택"않습니다 나는 filename
매개 변수를 지정하지 않는이 같은 파일을 생성하고, 그래서 문제가 귀결 생각 filename
가 지정되지 않은 경우? 난 임의의 파일 이름을 생성하고 이중 안전하게 여기에 전달할 수 있다고 생각합니다.
file_name = files.blobstore.create(mime_type='application/octet-stream')
안녕하세요. 올바른 정보가 아닙니다. 이미지 게재 URL을 사용하는 경우 결과 URL은 https://developers.google.com/appengine/docs/python/images/functions로 추측 할 수 없지만 BLOB 키에는 이러한 속성이없는 것으로 보입니다. "Blobstore 값에 대한 액세스가 제한되어야하는 경우 사용자가 제출 한 데이터에서 계산 된 키를 기반으로 값을 제공 할 때주의해야합니다."라는 다소 모호한 인용구가있는 것 같습니다. https://developers.google.com/appengine/docs/python/blobstore/blobkeyclass 보안에 대한 자세한 내용을 알려주십시오. –