Если у вам не хватает места в облаках, то не обязательно платить за дополнительные объемы. Можно подержать свои данные у соседа по домену google.com. А может вам просто захотелось донести до общественности очень важную информацию, но как-то не хочется, чтоб кто-то узнал, что именно Вы распространяете эту информацию. И тут тоже вам поможет сосед из домена google.com.
У Google Drive API есть возможность сменить владельца у файла или папки. Через интерфейс Google Drive этого сделать невозможно. Просто нет такой опции.
По задумке разработчиков Google Drive, этот функционал вообще должен быть доступен только внутри одного домена. Причем отличного от gmail.com
Недавно я заметил, что передача файла другому владельцу, даже незнакомому вполне реальна.
Это легко воспроизводится за считанные минуты.
Предположим у нас есть файл «Flying Dutchman» с ID 1eBFg6Jqlbv16KwzHy8ebdyvpDf_1dQt2k2aiRfAPANQ
Шаг 1. Шарим файл другу в web-интерфейсе или при помощи API прям на странице с документацией.
Со страницы документации Permissions: insert отправляем запрос на добавление разрешения:
sendNotificationEmails=false — важно, если не хотите, чтоб получатель узнал по почте о том, что ему дали доступ к файлу.
Ответом на данный запрос будет вновь созданный объект со своим ID:
Шаг 2. При помощи функции "Permissions: update" на странице документации, немного меняем права «друга» на файл, отправив следующий запрос:
transferOwnership=true — Этот параметер принуждает сменить фладельца для файла.
Получаем ожидаемый ответ:
Конечно же ошибка — ты залил файл на драйв, тебе и нести это бремя. Но не тут-то было. Не смотря на ожидаемый ответ, результат оказывается неожиданным — в web-интерфейсе Google Drive теперь можно сменить фладельца этому файлу:

После смены владельца, наш «Flying Dutchman» отправился в большое плаванье. С этого момента новый владелец может «подарить» файл кому-нибудь еще прям из web-интерфейса Google Drive.
Но тут есть все же ограничения — даже через интерфейс невозможно передать файл в другой домен (например конкуренту, который пользуется Google Apps).
Решив, что это уязвимось — как-ни-как можно и порно с участием несовершеннолетних мервых зверушек шарить в общий доступ от лица ничего не подозревающей домохозяйки, или просто полностью заполнить сторадж — я писал об этой возможности хлопцам с гугла. На что они мне ответили, что все работает, как и задумано (я конечно удивился, т.к. сам ни когда не решал поставленные задачи черезболь ошибку в API):
Возможно я ошибся адресом и это действительно не «security vulnerability» и нужно было писать куда еще. Но с другой стороны мистер Adam B. написал что все так и было задумано.
Так что, дамы и господа, прошу любить и жаловать недокументированную функциональную возможность в Google Drive!
У Google Drive API есть возможность сменить владельца у файла или папки. Через интерфейс Google Drive этого сделать невозможно. Просто нет такой опции.
По задумке разработчиков Google Drive, этот функционал вообще должен быть доступен только внутри одного домена. Причем отличного от gmail.com
Недавно я заметил, что передача файла другому владельцу, даже незнакомому вполне реальна.
Это легко воспроизводится за считанные минуты.
Предположим у нас есть файл «Flying Dutchman» с ID 1eBFg6Jqlbv16KwzHy8ebdyvpDf_1dQt2k2aiRfAPANQ
Шаг 1. Шарим файл другу в web-интерфейсе или при помощи API прям на странице с документацией.
Со страницы документации Permissions: insert отправляем запрос на добавление разрешения:
POST https://www.googleapis.com/drive/v2/files/1eBFg6Jqlbv16KwzHy8ebdyvpDf_1dQt2k2aiRfAPANQ/permissions?sendNotificationEmails=false&key={YOUR_API_KEY}
Content-Type: application/json
Authorization: Bearer ya29.1.AADtN_VPKapTXXnw2ZAa27vFeOGEocZ9RZbGIILT3YmtuiiOduznklptLrT57pnV72cnMf8RiXEHWcNKXqxtjw
X-JavaScript-User-Agent: Google APIs Explorer
{
"role": "writer",
"type": "user",
"value": "***************@gmail.com"
}
sendNotificationEmails=false — важно, если не хотите, чтоб получатель узнал по почте о том, что ему дали доступ к файлу.
Ответом на данный запрос будет вновь созданный объект со своим ID:
{
...
"id": "03227976173619342331",
...
}
Шаг 2. При помощи функции "Permissions: update" на странице документации, немного меняем права «друга» на файл, отправив следующий запрос:
PUT https://www.googleapis.com/drive/v2/files/1eBFg6Jqlbv16KwzHy8ebdyvpDf_1dQt2k2aiRfAPANQ/permissions/03227976173619342331?transferOwnership=true&key={YOUR_API_KEY}
Content-Type: application/json
Authorization: Bearer ya29.1.AADtN_VPKapTXXnw2ZAa27vFeOGEocZ9RZbGIILT3YmtuiiOduznklptLrT57pnV72cnMf8RiXEHWcNKXqxtjw
X-JavaScript-User-Agent: Google APIs Explorer
{
}
transferOwnership=true — Этот параметер принуждает сменить фладельца для файла.
Получаем ожидаемый ответ:
400 Bad Request
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Resource metadata required"
}
],
"code": 400,
"message": "Resource metadata required"
}
}
Конечно же ошибка — ты залил файл на драйв, тебе и нести это бремя. Но не тут-то было. Не смотря на ожидаемый ответ, результат оказывается неожиданным — в web-интерфейсе Google Drive теперь можно сменить фладельца этому файлу:
После смены владельца, наш «Flying Dutchman» отправился в большое плаванье. С этого момента новый владелец может «подарить» файл кому-нибудь еще прям из web-интерфейса Google Drive.
Но тут есть все же ограничения — даже через интерфейс невозможно передать файл в другой домен (например конкуренту, который пользуется Google Apps).
Решив, что это уязвимось — как-ни-как можно и порно с участием несовершеннолетних мервых зверушек шарить в общий доступ от лица ничего не подозревающей домохозяйки, или просто полностью заполнить сторадж — я писал об этой возможности хлопцам с гугла. На что они мне ответили, что все работает, как и задумано (я конечно удивился, т.к. сам ни когда не решал поставленные задачи через
Hey,
Thanks for your bug report. We've taken a look at your submission and can confirm this is not a security vulnerability. Transferring ownership of a file is a feature of Drive, and working as intended.
Regards,
Adam B.
Возможно я ошибся адресом и это действительно не «security vulnerability» и нужно было писать куда еще. Но с другой стороны мистер Adam B. написал что все так и было задумано.
Так что, дамы и господа, прошу любить и жаловать недокументированную функциональную возможность в Google Drive!