Как разрешить безопасно и недорого разрешить использование изображений на моем сайте? - PullRequest
8 голосов
/ 05 июля 2010

Я разработал сайт социальной сети для садоводов и заинтересован в том, чтобы пользователи могли добавлять изображения в свои "твиты".

Если я позволю им загружать изображения на реальный сайт, похоже, что это быстро станет дорогим (это побочный проект, финансируемый не кем-либо, кроме меня и моих собственных навязчивых идей). Допустим, сайт становится умеренно популярным: 100 тыс. Пользователей публикуют одно изображение в неделю, размером всего 250 тыс. Это (100000 * .1 * 52/1024) = 508 МБ / год в хранилище (и это не учитывает увеличение пропускной способности). Плюс мне пришлось бы увеличить нагрузку на сервер, чтобы масштабировать изображения. Я не уверен, стоит ли мне продолжать это или есть лучшие возможности.

Ссылки на другие сайты в некоторых отношениях кажутся лучше. У вас есть неработающие ссылки, но меня больше беспокоит безопасность: XSS.

Приложение находится на Rails 3, используя MongoDB / Mongoid в качестве бэкэнда, если это имеет значение.

Я ищу такие решения, как:

  • API, которые хранят изображения на внешних сайтах. Что было бы идеально, так это возможность загрузить его на мой сайт и сделать вызов API, чтобы сохранить его на внешнем сайте.
  • API-интерфейсы (возможно, Javascript API-интерфейсы), которые упрощают безопасную связь с одним или несколькими внешними сайтами размещения изображений.
  • Уценка или аналогичная разметка, позволяющая безопасно связываться с внешними изображениями. Я заинтересован в том, чтобы дать пользователям возможность форматировать свои сообщения ограниченным образом, так что это может решить две проблемы одновременно. Я заметил, что это то, что делает переполнение стека.
  • Библиотеки безопасности, которые заносят в белый список шаблоны изображений
  • Совет, почему я думаю об этой проблеме неправильно. Например, может быть, я должен просто хранить изображения. 500 МБ в год на самом деле не так уж и дорого, и это позволяет мне создавать очень чистый пользовательский опыт.

Мои цели (по порядку): - Безопасный, как для моего собственного сайта, так и для запрета XSS-атак на другие сайты - Лучший пользовательский опыт - Простота в обслуживании и реализации

Что вы сделали для того, чтобы разрешить использование пользовательских изображений на вашем сайте?

Ответы [ 3 ]

4 голосов
/ 05 июля 2010

Вы думаете о проблеме неправильно;) или, скорее, не в нужное время.

Не беспокойтесь о пропускной способности сейчас, когда у вас еще не так много пользователей.Сосредоточьтесь на том, чтобы сделать сайт удобным и популярным.Производительность, пропускная способность, дисковое пространство - это то, над чем вы будете работать, когда возникнут проблемы.К тому времени, когда у вас будет 100 000 пользователей, стоимость покупки этого пространства и пропускной способности, скажем, на Amazon S3, может больше не быть проблемой.

2 голосов
/ 05 июля 2010

Почему бы не использовать такой сервис, как Amazon s3? Это дешево, очень дешево (с хранилищем с уменьшенным резервированием), и самые важные плагины, такие как Paperclip, поддерживают его из коробки ...

0 голосов
/ 05 июля 2010

Вам нужно будет ознакомиться с T & C хостов изображений (flickr и т. Д.) И посмотреть, применимо ли ваше использование. У Flickr есть API, но не уверен, что остальные просто ищут HOST API.

API Flickrs находится по адресу: http://www.flickr.com/services/api/

...