Bittorrent-трекер отвечает за царапину, когда в infohash '00' - PullRequest
1 голос
/ 30 марта 2011

Мой вопрос относится к http-ответу очистки, когда infohash содержит '00', запрос очистки с% 00, поэтому в ответе http будет '\ 0'. Я нашел некоторые торренты с нулевыми байтами в infohash, и мне интересно, как трекер должен отвечать на запросы очистки этих торрентов. Я имею в виду, будет ли \ 0 нормально работать? Я тестировал этот торрент с помощью torrentspy, и он всегда говорит:

«Поток не найден на трекере; возможно, гнилой»

Я написал базовый трекер для проверки этого и убедился, что полный ответ скрапа был записан в сокет, но у torrentspy все тот же вывод. Когда я смотрю на этот скрап-ответ в веб-браузере, он заканчивается на '\ 0'

Кто-нибудь может принести свет в темноту?

1 Ответ

2 голосов
/ 31 марта 2011

Не совсем понятно, каков ваш вопрос, но я постараюсь заполнить некоторые вопросы.

'\ 0' ничем не отличается от любого другого непечатаемого символа. Все не-безопасные символы URL всегда должны быть экранированы как% xx в запросе GET к HTTP-трекеру. У некоторых трекеров есть ошибки, когда они, например, предполагают, что символы, которые не нужно экранировать, не экранированы (то есть они могут сохранить экранированную версию информационного хэша в качестве своего внутреннего представления). Некоторые веб-серверы могут даже предполагать, что `(одинарная кавычка) всегда экранируется (что допускает атаки с использованием SQL-инъекций). Все специальные символы должны быть экранированы, особенно & и % (очевидно).

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

Итак, на ваш вопрос. Когда вы говорите «торренты с нулевым байтом в информационном хеше», я предполагаю, что вы имеете в виду, что у их информационного хэша есть еще один байт, равный 0. Это совершенно нормально и не редкость. Будет ли это нормально работать? Да, вам просто нужно убедиться, что он не указан как% 00, так же, как вы должны делать с% 01.

Ваш торрент, вероятно, мертв, т.е. трекер перестал его отслеживать. Вот что означает это сообщение об ошибке. Вероятно, это не имеет ничего общего с наличием нулевого байта в информационном хеше.

...