Я разработал сайт social networking site for gardeners и заинтересован в предоставлении пользователям возможности добавлять изображения в свои «твиты».Как я могу позволить безопасно и недорого разрешать изображения на моем сайте?
Если я разрешаю им загружать изображения на фактический сайт, кажется, что это быстро станет дорогим (это побочный проект, который не финансируется никем, кроме меня и моих собственных навязчивых идей). Предположим, что сайт становится умеренно популярным, а пользователи 100K публикуют одно изображение в неделю, всего лишь 250K. Это (100000 * .1 * 52/1024) = 508 МБ/год в хранилище (и это не учитывает увеличенную пропускную способность). Кроме того, мне пришлось бы увеличить нагрузку на сервер для масштабирования изображений. Я не уверен, что мне следует продолжить это, или если есть лучшие возможности.
Ссылка на другие сайты выглядит по-другому. У вас есть неработающие ссылки, но для меня большая проблема - безопасность: XSS.
Приложение находится на Rails 3, используя MongoDB/Mongoid в качестве бэкэнд, если это имеет значение.
Я ищу решение, такие как:
- API, которые хранят изображения на внешних сайтах. Идеально было бы возможность загрузить его на мой сайт и сделать вызов API, чтобы сохранить его на внешнем сайте.
- API (возможно, Javascript API), которые позволяют легко подключаться к одному или нескольким сайтам, размещенным на внешнем изображении.
- Markdown или аналогичная разметка, позволяющая надежно связываться с внешними изображениями. Я заинтересован в том, чтобы предоставить пользователям возможность форматировать свои сообщения ограниченным образом, поэтому это может одновременно решить две проблемы. Я замечаю, что это то, что делает Stack Overflow.
- Библиотеки безопасности, отображающие URL-адрес URL-адреса белого списка
- Рекомендации по поводу того, почему я думаю об этой проблеме неправильно. Например, возможно, я просто должен хранить изображения. 500 МБ в год действительно не так дорого, и это позволяет мне создавать очень чистый пользовательский интерфейс.
Мои цели (в порядке убывания): - Безопасно, как для моего собственного сайта, а также не допускать XSS атаки на другие сайты - наилучший опыт пользователя - Простота в обслуживании и реализации
Что вы сделали, чтобы разрешить пользовательские изображения на вашем сайте?
Что я собирался сказать. 508 МБ в хранилище будет составлять около $ 1 на S3. –