• XSS.stack #1 – первый литературный журнал от юзеров форума

Идея анонимного хостинга

Quake3

TPU unit
Забанен
Регистрация
03.11.2010
Сообщения
4 529
Решения
4
Реакции
5 305
Депозит
0.046
Пожалуйста, обратите внимание, что пользователь заблокирован
Чисто случайно нашел интересную заметку, авторства malayazemlya

Суть идеи очень проста — запихнуть весь контент странички в URL, а затем сократить с помощью любого сервиса сокращения URL'ов вроде bit.ly, goo.gl или tinyurl.com. Потребуется только разместить где-то элементарный скриптик, который будет из урла брать контент и выводить на экран. Хранить он при этом его не будет. Хранить весь контент будет сокращалка. В общем, красота. Давай поподробнее разберемся, как это работает.

Итак, есть ссылка, например, tinyurl.com/3nghu2l. При переходе по ней — нас переправит на длиннющую ссылку вроде следующей:

Код:
http://хостинг/яваскрптик.html#PGhlYWQ+CjxzdHls
Z4KYm9keSB7CiAgY29sb3I6ICNGRjY7CiAgYmFja2dyb3VuZ
C1jb2xvcjogIzAwMDsKfQo8L3N0eWxlPgo8L2hlYWQ+Cjxib
2R5PgpUaGlzIHBhZ2UgaXMgaG9zdGVkIG9uIDxhIGhyZWY9I
mh0dHA6Ly90aW55dXJsLmNvbSI+dGlueXVybC5jb208L2E+C
jwvYm9keT4=

В ней все после знака '#' — это наш контент в base64формате, а яваскриптик — это скрипт, делающий вот так:

Код:
var hsh = document.location.hash;
hsh = hsh .substring(1, hsh .length);
document.write(decode64(hsh ));
// decode64 — функция, декодирующая base64

То есть он просто получит все, что после '#', раскодирует и выведет на экран.

В RFC длина URL никак не регламентирована, поэтому можно смело кодировать с помощью любого base64-алгоритма html-код любой длины, надеясь, что браузеры тоже никак не ограничивают длину урла. Чтобы разместить таким образом картинки, нужно будет немного потрахаться с data. Вот так, например:

Код:
<img src="data:image/gif;base64,R0lGODlhEAAOAL
MAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub//ge8WSLf/
rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAA
Re8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmT
IHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjP
ZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7" width="16"
height="14"/>

Синтаксис тут простой (данные, понятно, в пресловутом base64):

Код:
data:[<тип данных>][;base64],<данные>

Источник _http://www.xakep.ru/post/57576/

Что думаете на эту тему? Меня смущает длина урл - наверное, лимиты все таки есть. Вот товарищ экспериментировал на тему _http://www.manhunter.ru/webmaster/481_kakaya_mozhet_bit_maksimalnaya_dlina_url.html Хотя, в принципе, в 1-2 тысячах допустимых любым браузером символов большинство простого контента можно поместить.
 
В RFC длина URL никак не регламентирована, надеясь, что браузеры тоже никак не ограничивают длину урла
Идея не нова, когда-то хотели таким макаром совать кодес/части кодеса для декрипта фреима, так вот основная проблема в том, что длина урла в браузерах ограничена, давно делал замеры (в хрома самая длинная - однозначно), если нужно - можно перепроверить.
 
Хе. меня уже цитируют :rolleyes:

Лимиты можно обойти разбив страницу на части. Например,следующим образом:

Первый кусок содержится например в bit.ly/123 и редиректит на http://site.com/1#.....

эта часть распаковывает хэш, пишет данные в документ, как в статье, но в конце добавляет iframe, указывающий на следующий кусок, скажем bit.ly/456 . К iframe прицепляем обработчик onload

bit.ly/456 редиректит на http://site.com/2#..... там вообще может быть пустая страница, нас интересует только адрес. Поскольку окончательный адрес находится на том же домене site.com, то у нас есть все права доступа к iframe. Значит мы можем спокойно достать адрес, опять распаковать и дописать к документу.

С остальными кусками поступаем точно так же.
 
Длина урла жестко лимитирована это факт.
Нужно где то хостить чудоскрипт-распаковщик это БОЛЬШОЙ минус.
Есть фича - хранение всего контента страницы прямо в урле через data:, но тут беда с кроссбраузерностью (старый ослик опять подкачал, можно нагуглить список браузеров где работает).

Однако прогресс не стоит на месте и рано или поздно можно будет практически без потерь использовать в корыстных целях )))
 
12309 ты какой то скучный )
Надо инсталлы - покупаем пак.
Надо акки - грузим зевса.
Надо трафик - берем в аренду фреймер :D :P

Тут ЖЕ что то интересное - полет фантазии если хотите!
 
Сделайте тока ширование нормальне с ключем а не просто base64 для js много либ для ширования.
Иначе в чем идея хранить свою инфу в открытом виде на левых сервисах ?
Ну и надежность сохраннаости данных под соменением.
 
По идее, обе проблемы - шифрование и сохранность - можно решить через разделение секретов. То бишь, существуют алгоритмы, позволяющие разделить исходные данные на n кусков так, чтоб любых m было достаточно для полной расшифровки, а из меньшего количества абсолютно ничего выжать нельзя. m и n настраиваются по желанию.

Делим данные на куски, раскидываем их по разным укоротителям, в нужный момент собираем. Восстановить можно только если знать правильные короткие urlы, а с другой стороны, если какие-то сервисы недоступны, у нас есть резерв.

Существуют ли готовые реализации на js, увы, не знаю. Перенести, думаю, можно.
 
Есть ли автомтизированные сервисы не требуюшие проверки капчи итп ?
тоесть расчитанные на автоматическо добавление или придется под популярные делать и постоянно поддерживать код по мере изменения их интерфейса итп.
 
bit.ly ничего не требует. Наоборот, SDK предлагают.

tinyurl тоже норм работает (проекта, с которого тема началась, построен на его базе). Без SDK, там и так все просто.

тот же твиттер можно легко припахать, если угодно. У них библиотек выше крыши.

goo.gl требует капчу только если не залогиниться. Логиниться можно автоматом и один раз.

Другими редко пользуюсь
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Bomzh
а смысл? для пхп нужен хостинг с поддержкой скриптов, в итоге возвращаемся к тому, отчего ушли.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх