Pull to refresh
  • by relevance
  • by date
  • by rating

DDOS любого сайта с помощью Google Spreadsheet

Information Security *
Translation
Google использует своего «паука» FeedFetcher для кэширования любого контента в Google Spreadsheet, вставленного через формулу =image(«link»).

Например, если в одну из клеток таблицы вставить формулу
=image("http://example.com/image.jpg")
Google отправит паука FeedFetcher скачать эту картинку и закэшировать для дальнейшего отображения в таблице.

Однако если добавлять случайный параметр к URL картинки, FeedFetcher будет скачивать её каждый раз заново. Скажем, для примера, на сайте жертвы есть PDF-файл размером в 10 МБ. Вставка подобного списка в таблицу приведет к тому, что паук Google скачает один и тот же файл 1000 раз!
=image("http://targetname/file.pdf?r=1")
=image("http://targetname/file.pdf?r=2")
=image("http://targetname/file.pdf?r=3")
=image("http://targetname/file.pdf?r=4")
...
=image("http://targetname/file.pdf?r=1000")

Все это может привести к исчерпанию лимита трафика у некоторых владельцев сайтов. Кто угодно, используя лишь браузер с одной открытой вкладкой, может запустить массированную HTTP GET FLOOD-атаку на любой веб-сервер.

Атакующему даже необязательно иметь быстрый канал. Поскольку в формуле используется ссылка на PDF-файл (т.е. не на картинку, которую можно было бы отобразить в таблице), в ответ от сервера Google атакующий получает только N/A. Это позволяет довольно просто многократно усилить атаку [Аналог DNS и NTP Amplification – прим. переводчика], что представляет серьезную угрозу.



С использованием одного ноутбука с несколькими открытыми вкладками, просто копируя-вставляя списки ссылок на файлы по 10 МБ, паук Google может скачивать этот файл со скоростью более 700 Мбит/c. В моем случае, это продолжалось в течение 30-45 минут, до тех пор, пока я не вырубил сервер. Если я все правильно подсчитал, за 45 минут ушло примерно 240GB трафика.
Читать дальше →
Total votes 181: ↑174 and ↓7 +167
Views 222K
Comments 62

Разбираем и вычисляем формулы MS Excel

Developer Soft corporate blog Website development *Programming *
Одной из самых интересных задач, с которыми нам пришлось столкнуться в процессе работы над компонентом Spreadsheet, стал механизм вычисления формул. Работая над ним, мы основательно углубились в механику функционирования аналогичного механизма в MS Excel.

И сегодня я хочу рассказать вам о принципах его работы, хитростях и подводных камнях. А чтобы не сводиться к сухим пересказам документации, разбавленным дополнениями «из жизни» — я заодно вкратце расскажу, как мы реализовывали подобный механизм.

Итак, в этой статье пойдет речь о трех основных частях классического калькулятора формул – разборе выражения, хранении и вычислении.

Читать дальше →
Total votes 55: ↑53 and ↓2 +51
Views 63K
Comments 17

PHPUnit: Электронная таблица (spreadsheet) в качестве источника данных (data provider)

PHP *
Recovery mode
Tutorial
В документации PHPUnit есть небольшой раздел посвященный источникам данных (data provider), которые позволяют скормить тесту большой объем данных, а чуть ниже есть даже пример источника данных для CSV файла.
но что делать если хочется отдельную страницу для каждого теста?
Total votes 15: ↑12 and ↓3 +9
Views 7.8K
Comments 2

Релиз Webix 3.2. Новые виджеты для работы с данными и прочие фичи

Website development *JavaScript *HTML *


Следуя традиции выпускать новые версии библиотеки с завидным постоянством, разработчики Webix сообщили о выходе регулярного весеннего релиза, на этот раз за номером 3.2. Среди нововведений в этой версии были замечены два новых виджета: SpreadSheet, который, как видно из названия, служит для создания экселеподобных таблиц, а также RangeChart, позволяющий выбрать для отображения определенный участок большого графика. Помимо этого, были добавлены новые возможности, позволяющие расширить функционал уже имеющихся компонентов.

Но обо всем по порядку.
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Views 10K
Comments 5

Генерируем красивую Google-таблицу из своей программы (используя Google Sheets API v4)

Python *Programming *Google API *
Tutorial

Постановка задачи


Пусть нам нужно создать программой на языке Python вот такую таблицу:

image

Особенности этой таблицы:

  • задана ширина столбцов;
  • верхняя ячейка является объединением A1:E1;
  • в некоторых ячейках настроены: формат отображения, размер шрифта, жирность, выравнивание текста и цвет фона;
  • значения в последнем столбике вычислены формулой (например, в E4 написано =D4-C4);
  • нарисована граница под ячейками A3:E3;
  • присутствует Пикачу (но это останется как домашнее задание для энтузиастов).

Интересно? Тогда добро пожаловать под кат.
Читать дальше →
Total votes 21: ↑19 and ↓2 +17
Views 101K
Comments 19

Использование SpreadsheetCloudAPI для написания приложений и облегчения жизни

Developer Soft corporate blog Website development *

Всем привет! Есть у нашей команды хобби — мы любим 3Д печать. И не просто любим, а активно печатаем все и вся — от простых игрушек на стол до деталек, которые даже в Китае не продаются. Каждый у нас в комнате хоть раз что-нибудь да напечатал.


image


В этой статье хотелось бы поделиться нашим опытом решения проблемы закупки пластика для принтера и как нам в этом помог сервис SpreadsheetCloudAPI. Подробности под катом.

Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Views 3.6K
Comments 1

PHP Excel Templator (PHP-шаблонизатор для Excel) или как мы до этого писали хардкод для Excel

PHP *Programming *
Sandbox
image

Думаю, что по скриншоту уже понятно, о чём идёт речь. Но, дабы не дублировать текст, который уже описан в документации, я расскажу только о важных моментах.
Читать дальше →
Total votes 20: ↑18 and ↓2 +16
Views 12K
Comments 14

Делаем страницу на React с базой сотрудников при помощи Airtable и Quarkly

Quarkly corporate blog JavaScript *API *ReactJS *

Слышали про такой инструмент, как Airtable, но не знали, с чего начать? Тогда приглашаем в мир визуального программирования построения БД!


Этим постом мы начинаем цикл обучающих статей, в которых будем давать практические примеры работы с нашим инструментом Quarkly. В этом уроке мы сделаем простое веб-приложение, которое будет показывать сотрудников компании. При создании приложения ни один сотрудник РЖД не пострадал.


Фронт будем делать при помощи Quarkly, а данные подтягивать из базы в Airtable. На выходе получим react-приложение, синхронизированное с базой данных.


Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Views 6K
Comments 3

Webix SpreadSheet. Полноценная web альтернатива десктопного Excel?

Website development *JavaScript *Programming *Interfaces *HTML *
Tutorial

Продолжая тему постепенного перехода от десктопного софта к аналогичным онлайн сервисам, в этой статье я хочу рассказать вам о виджете, который способен потягаться с его величеством "Excel". Речь пойдет о весьма необычном JavaScript решении для полноценной работы с электронными таблицами, которое гибко настраивается и легко интегрируется в любое окружение. Давайте разбираться что же представляет собой SpreadSheet и так ли он хорош на самом деле.

Узнать подробнее
Total votes 8: ↑7 and ↓1 +6
Views 4K
Comments 19

Множественный выбор кнопок в боте

JavaScript *
Tutorial

Пишем бота для телеграм, позволяющий осуществить множественный выбор с помощью кнопок инлайн-клавиатуры. Продолжаю начатый цикл постов о связке инструментов гугл таблиц и телеграм. В этом посте предлагаю способ реализации множественного выбора с помощью инструментов гугл таблиц и javaScript. Много кода и скриншотов, что способствует повторить те же действия дома. Все комментарии и обратная связь приветствуются.

 

Читать далее
Total votes 4: ↑4 and ↓0 +4
Views 2.5K
Comments 6

Контроль версий в AppScript

JavaScript *

Сегодня хочу познакомить читателя с расширением Chrome, которое позволяет управлять версионностью гугл скриптов.

Цель поста - осветить дополнительную возможность гугл скриптов, показать доступный инструмент и то, как он работает.

Читать далее
Total votes 2: ↑1 and ↓1 0
Views 758
Comments 2