Что-то вроде комбинации двух предыдущих ответов:
import pathlib
import os
def resources(path):
parts = pathlib.Path(path).parts
for n in range(len(parts), 1, -1):
yield os.path.join(*parts[:n])
Обновление : JSONP является общим взломом, чтобы сделать междоменные запросы. Современные браузеры теперь имеют Перекрестное Разделение ресурсов Источника, и IE8 + имеют XDomainRequest, который подобен. См. http://enable-cors.org/ для большего количества информации
, JSONP является просто сценарием, включают, который позволяет Вам использовать обратный вызов. Необходимо однако знать Подделка запроса перекрестного сайта (CSRF) .
, пока Вы управляете сценарием и сервером, JSONP не больше небезопасен, чем сценарий включает. Если у Вас нет JSONP-сервиса, который возвращается, уязвимые данные к вошли в систему пользователи. Злонамеренный сайт может отправить запрос к сервису (надеясь, что пользователь зарегистрирован на Вашем сайте), и получите данные. Сервис может проверить ссылающийся домен запроса, но возможно имитировать ссылающийся домен с помощью флэш-памяти (благодарит Chris Moschini).
Воображают этот сценарий: - пользователь входит в свою учетную запись интернет-банкинга. Хранение сеансовых куки в пользовательском браузере. Этот сайт имеет jsonp сервис с чувствительной информацией о пользователе и его учетных записях. - Другие сайты не будут знать, что пользователь зарегистрирован, но они могли сделать произвольное предположение и попытку получить доступ к jsonp сервису. Так как у пользователя есть сеансовые куки, браузер получит ответ, и нет ничего мешающего сайту делать сообщение ajax для сохранения уязвимых данных на их сервере.
Обновление 28-го июня 2012 : Если Вы хотите защитить от нападений на CSRF, необходимо считать это подробно сообщение в блоге специалистом по безопасности: http://erlend.oftedal.no/blog/?blogid=130
У нас была такая же проблема. К сожалению, после долгих обсуждений с TA и клиентом было решено повысить эффективность (с точки зрения денег и времени), чтобы максимизировать ее на основном мониторе.
файлы cookie присутствуют в запросе о том, что потребителем является веб-страница, находящаяся под вашим контролем. Сравните заголовок Referer с белым списком авторизованных URL-адресов и / или не полагайтесь на аутентификацию на основе файлов cookie.